@ctzhian/tiptap 1.5.2 → 1.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Editor/demo.d.ts +4 -0
- package/dist/Editor/demo.js +153 -0
- package/dist/Editor/index.d.ts +4 -0
- package/dist/Editor/index.js +21 -0
- package/dist/EditorDiff/demo.d.ts +4 -0
- package/dist/EditorDiff/demo.js +12 -0
- package/dist/EditorDiff/index.d.ts +7 -0
- package/dist/EditorDiff/index.js +24 -0
- package/dist/EditorThemeProvider/index.d.ts +11 -0
- package/dist/EditorThemeProvider/index.js +90 -0
- package/dist/EditorToolbar/index.d.ts +9 -0
- package/dist/EditorToolbar/index.js +325 -0
- package/dist/asset/css/index.css +165 -0
- package/dist/asset/images/disk.png +0 -0
- package/dist/component/CustomBubbleMenu/SelectionText.d.ts +9 -0
- package/dist/component/CustomBubbleMenu/SelectionText.js +292 -0
- package/dist/component/CustomDragHandle/index.d.ts +9 -0
- package/dist/component/CustomDragHandle/index.js +1407 -0
- package/dist/component/CustomFloatingMenu/index.d.ts +0 -0
- package/dist/component/CustomFloatingMenu/index.js +85 -0
- package/dist/component/FloatingPopover/index.d.ts +15 -0
- package/dist/component/FloatingPopover/index.js +113 -0
- package/dist/component/Icons/add-line-icon.d.ts +6 -0
- package/dist/component/Icons/add-line-icon.js +13 -0
- package/dist/component/Icons/ai-generate-2-icon.d.ts +6 -0
- package/dist/component/Icons/ai-generate-2-icon.js +13 -0
- package/dist/component/Icons/ai-generate-text-icon.d.ts +6 -0
- package/dist/component/Icons/ai-generate-text-icon.js +13 -0
- package/dist/component/Icons/align-bottom-icon.d.ts +6 -0
- package/dist/component/Icons/align-bottom-icon.js +13 -0
- package/dist/component/Icons/align-center-icon.d.ts +6 -0
- package/dist/component/Icons/align-center-icon.js +13 -0
- package/dist/component/Icons/align-justify-icon.d.ts +6 -0
- package/dist/component/Icons/align-justify-icon.js +13 -0
- package/dist/component/Icons/align-left-icon.d.ts +6 -0
- package/dist/component/Icons/align-left-icon.js +13 -0
- package/dist/component/Icons/align-right-icon.d.ts +6 -0
- package/dist/component/Icons/align-right-icon.js +13 -0
- package/dist/component/Icons/align-top-icon.d.ts +6 -0
- package/dist/component/Icons/align-top-icon.js +13 -0
- package/dist/component/Icons/align-vertically-icon.d.ts +6 -0
- package/dist/component/Icons/align-vertically-icon.js +13 -0
- package/dist/component/Icons/anticlockwise-line-icon.d.ts +6 -0
- package/dist/component/Icons/anticlockwise-line-icon.js +13 -0
- package/dist/component/Icons/arrow-down-s-line-icon.d.ts +6 -0
- package/dist/component/Icons/arrow-down-s-line-icon.js +13 -0
- package/dist/component/Icons/arrow-go-back-line-icon.d.ts +6 -0
- package/dist/component/Icons/arrow-go-back-line-icon.js +13 -0
- package/dist/component/Icons/arrow-go-forward-line-icon.d.ts +6 -0
- package/dist/component/Icons/arrow-go-forward-line-icon.js +13 -0
- package/dist/component/Icons/arrow-left-wide-line-icon.d.ts +6 -0
- package/dist/component/Icons/arrow-left-wide-line-icon.js +13 -0
- package/dist/component/Icons/at-line-icon.d.ts +6 -0
- package/dist/component/Icons/at-line-icon.js +13 -0
- package/dist/component/Icons/attachment-2-icon.d.ts +6 -0
- package/dist/component/Icons/attachment-2-icon.js +13 -0
- package/dist/component/Icons/attachment-line-icon.d.ts +6 -0
- package/dist/component/Icons/attachment-line-icon.js +13 -0
- package/dist/component/Icons/bold-icon.d.ts +6 -0
- package/dist/component/Icons/bold-icon.js +13 -0
- package/dist/component/Icons/brush-line-icon.d.ts +6 -0
- package/dist/component/Icons/brush-line-icon.js +13 -0
- package/dist/component/Icons/carousel-view-icon.d.ts +6 -0
- package/dist/component/Icons/carousel-view-icon.js +13 -0
- package/dist/component/Icons/checkbox-blank-circle-line-icon.d.ts +6 -0
- package/dist/component/Icons/checkbox-blank-circle-line-icon.js +13 -0
- package/dist/component/Icons/checkbox-circle-fill-icon.d.ts +6 -0
- package/dist/component/Icons/checkbox-circle-fill-icon.js +13 -0
- package/dist/component/Icons/checkbox-circle-line-icon.d.ts +6 -0
- package/dist/component/Icons/checkbox-circle-line-icon.js +13 -0
- package/dist/component/Icons/clockwise-line-icon.d.ts +6 -0
- package/dist/component/Icons/clockwise-line-icon.js +13 -0
- package/dist/component/Icons/close-circle-fill-icon.d.ts +6 -0
- package/dist/component/Icons/close-circle-fill-icon.js +13 -0
- package/dist/component/Icons/code-box-line-icon.d.ts +6 -0
- package/dist/component/Icons/code-box-line-icon.js +13 -0
- package/dist/component/Icons/code-line-icon.d.ts +6 -0
- package/dist/component/Icons/code-line-icon.js +13 -0
- package/dist/component/Icons/code-s-slash-line-icon.d.ts +6 -0
- package/dist/component/Icons/code-s-slash-line-icon.js +13 -0
- package/dist/component/Icons/copy-icon.d.ts +6 -0
- package/dist/component/Icons/copy-icon.js +13 -0
- package/dist/component/Icons/custom-size-icon.d.ts +6 -0
- package/dist/component/Icons/custom-size-icon.js +13 -0
- package/dist/component/Icons/delete-column-icon.d.ts +6 -0
- package/dist/component/Icons/delete-column-icon.js +13 -0
- package/dist/component/Icons/delete-line-icon.d.ts +6 -0
- package/dist/component/Icons/delete-line-icon.js +13 -0
- package/dist/component/Icons/delete-row-icon.d.ts +6 -0
- package/dist/component/Icons/delete-row-icon.js +13 -0
- package/dist/component/Icons/double-quotes-l-icon.d.ts +6 -0
- package/dist/component/Icons/double-quotes-l-icon.js +13 -0
- package/dist/component/Icons/download-line-icon.d.ts +6 -0
- package/dist/component/Icons/download-line-icon.js +13 -0
- package/dist/component/Icons/draggable-icon.d.ts +6 -0
- package/dist/component/Icons/draggable-icon.js +13 -0
- package/dist/component/Icons/edit-box-line-icon.d.ts +6 -0
- package/dist/component/Icons/edit-box-line-icon.js +13 -0
- package/dist/component/Icons/error-warning-fill-icon.d.ts +6 -0
- package/dist/component/Icons/error-warning-fill-icon.js +13 -0
- package/dist/component/Icons/export-line-icon.d.ts +6 -0
- package/dist/component/Icons/export-line-icon.js +13 -0
- package/dist/component/Icons/file-copy-line-icon.d.ts +6 -0
- package/dist/component/Icons/file-copy-line-icon.js +13 -0
- package/dist/component/Icons/file-upload-line-icon.d.ts +6 -0
- package/dist/component/Icons/file-upload-line-icon.js +13 -0
- package/dist/component/Icons/flow-chart-icon.d.ts +6 -0
- package/dist/component/Icons/flow-chart-icon.js +13 -0
- package/dist/component/Icons/font-color-icon.d.ts +6 -0
- package/dist/component/Icons/font-color-icon.js +13 -0
- package/dist/component/Icons/font-family-icon.d.ts +6 -0
- package/dist/component/Icons/font-family-icon.js +13 -0
- package/dist/component/Icons/font-size-icon.d.ts +6 -0
- package/dist/component/Icons/font-size-icon.js +13 -0
- package/dist/component/Icons/format-clear-icon.d.ts +6 -0
- package/dist/component/Icons/format-clear-icon.js +13 -0
- package/dist/component/Icons/formula-icon.d.ts +6 -0
- package/dist/component/Icons/formula-icon.js +13 -0
- package/dist/component/Icons/fullscreen-exit-line-icon.d.ts +6 -0
- package/dist/component/Icons/fullscreen-exit-line-icon.js +13 -0
- package/dist/component/Icons/fullscreen-line-icon.d.ts +6 -0
- package/dist/component/Icons/fullscreen-line-icon.js +13 -0
- package/dist/component/Icons/functions-icon.d.ts +6 -0
- package/dist/component/Icons/functions-icon.js +13 -0
- package/dist/component/Icons/game-line-icon.d.ts +6 -0
- package/dist/component/Icons/game-line-icon.js +13 -0
- package/dist/component/Icons/h-1-icon.d.ts +6 -0
- package/dist/component/Icons/h-1-icon.js +13 -0
- package/dist/component/Icons/h-2-icon.d.ts +6 -0
- package/dist/component/Icons/h-2-icon.js +13 -0
- package/dist/component/Icons/h-3-icon.d.ts +6 -0
- package/dist/component/Icons/h-3-icon.js +13 -0
- package/dist/component/Icons/h-4-icon.d.ts +6 -0
- package/dist/component/Icons/h-4-icon.js +13 -0
- package/dist/component/Icons/h-5-icon.d.ts +6 -0
- package/dist/component/Icons/h-5-icon.js +13 -0
- package/dist/component/Icons/h-6-icon.d.ts +6 -0
- package/dist/component/Icons/h-6-icon.js +13 -0
- package/dist/component/Icons/heading-icon.d.ts +6 -0
- package/dist/component/Icons/heading-icon.js +13 -0
- package/dist/component/Icons/image-add-line-icon.d.ts +6 -0
- package/dist/component/Icons/image-add-line-icon.js +13 -0
- package/dist/component/Icons/image-line-icon.d.ts +6 -0
- package/dist/component/Icons/image-line-icon.js +13 -0
- package/dist/component/Icons/import-line-icon.d.ts +6 -0
- package/dist/component/Icons/import-line-icon.js +13 -0
- package/dist/component/Icons/indent-decrease-icon.d.ts +6 -0
- package/dist/component/Icons/indent-decrease-icon.js +13 -0
- package/dist/component/Icons/indent-increase-icon.d.ts +6 -0
- package/dist/component/Icons/indent-increase-icon.js +13 -0
- package/dist/component/Icons/index.d.ts +120 -0
- package/dist/component/Icons/index.js +123 -0
- package/dist/component/Icons/information-2-fill-icon.d.ts +6 -0
- package/dist/component/Icons/information-2-fill-icon.js +13 -0
- package/dist/component/Icons/information-2-line-icon.d.ts +6 -0
- package/dist/component/Icons/information-2-line-icon.js +13 -0
- package/dist/component/Icons/insert-column-left-icon.d.ts +6 -0
- package/dist/component/Icons/insert-column-left-icon.js +13 -0
- package/dist/component/Icons/insert-column-right-icon.d.ts +6 -0
- package/dist/component/Icons/insert-column-right-icon.js +13 -0
- package/dist/component/Icons/insert-row-bottom-icon.d.ts +6 -0
- package/dist/component/Icons/insert-row-bottom-icon.js +13 -0
- package/dist/component/Icons/insert-row-top-icon.d.ts +6 -0
- package/dist/component/Icons/insert-row-top-icon.js +13 -0
- package/dist/component/Icons/italic-icon.d.ts +6 -0
- package/dist/component/Icons/italic-icon.js +13 -0
- package/dist/component/Icons/layout-left-2-line-icon.d.ts +6 -0
- package/dist/component/Icons/layout-left-2-line-icon.js +13 -0
- package/dist/component/Icons/layout-top-2-line-icon.d.ts +6 -0
- package/dist/component/Icons/layout-top-2-line-icon.js +13 -0
- package/dist/component/Icons/link-icon.d.ts +6 -0
- package/dist/component/Icons/link-icon.js +13 -0
- package/dist/component/Icons/link-unlink-icon.d.ts +6 -0
- package/dist/component/Icons/link-unlink-icon.js +13 -0
- package/dist/component/Icons/list-check-2-icon.d.ts +6 -0
- package/dist/component/Icons/list-check-2-icon.js +13 -0
- package/dist/component/Icons/list-check-3-icon.d.ts +6 -0
- package/dist/component/Icons/list-check-3-icon.js +13 -0
- package/dist/component/Icons/list-ordered-2-icon.d.ts +6 -0
- package/dist/component/Icons/list-ordered-2-icon.js +13 -0
- package/dist/component/Icons/list-unordered-icon.d.ts +6 -0
- package/dist/component/Icons/list-unordered-icon.js +13 -0
- package/dist/component/Icons/markdown-line-icon.d.ts +6 -0
- package/dist/component/Icons/markdown-line-icon.js +13 -0
- package/dist/component/Icons/markup-line-icon.d.ts +6 -0
- package/dist/component/Icons/markup-line-icon.js +13 -0
- package/dist/component/Icons/menu-fold-2-fill-icon.d.ts +6 -0
- package/dist/component/Icons/menu-fold-2-fill-icon.js +13 -0
- package/dist/component/Icons/merge-cells-horizontal-icon.d.ts +6 -0
- package/dist/component/Icons/merge-cells-horizontal-icon.js +13 -0
- package/dist/component/Icons/merge-cells-vertical-icon.d.ts +6 -0
- package/dist/component/Icons/merge-cells-vertical-icon.js +13 -0
- package/dist/component/Icons/mind-map-icon.d.ts +6 -0
- package/dist/component/Icons/mind-map-icon.js +13 -0
- package/dist/component/Icons/more-line-icon.d.ts +6 -0
- package/dist/component/Icons/more-line-icon.js +13 -0
- package/dist/component/Icons/movie-line-icon.d.ts +6 -0
- package/dist/component/Icons/movie-line-icon.js +13 -0
- package/dist/component/Icons/music-2-line-icon.d.ts +6 -0
- package/dist/component/Icons/music-2-line-icon.js +13 -0
- package/dist/component/Icons/node-tree-icon.d.ts +6 -0
- package/dist/component/Icons/node-tree-icon.js +13 -0
- package/dist/component/Icons/notification-3-line-icon.d.ts +6 -0
- package/dist/component/Icons/notification-3-line-icon.js +13 -0
- package/dist/component/Icons/organization-chart-icon.d.ts +6 -0
- package/dist/component/Icons/organization-chart-icon.js +13 -0
- package/dist/component/Icons/pause-line-icon.d.ts +6 -0
- package/dist/component/Icons/pause-line-icon.js +13 -0
- package/dist/component/Icons/play-line-icon.d.ts +6 -0
- package/dist/component/Icons/play-line-icon.js +13 -0
- package/dist/component/Icons/question-fill-icon.d.ts +6 -0
- package/dist/component/Icons/question-fill-icon.js +13 -0
- package/dist/component/Icons/quote-text-icon.d.ts +6 -0
- package/dist/component/Icons/quote-text-icon.js +13 -0
- package/dist/component/Icons/repeat-2-line-icon.d.ts +6 -0
- package/dist/component/Icons/repeat-2-line-icon.js +13 -0
- package/dist/component/Icons/reset-left-fill-icon.d.ts +6 -0
- package/dist/component/Icons/reset-left-fill-icon.js +13 -0
- package/dist/component/Icons/scissors-cut-line-icon.d.ts +6 -0
- package/dist/component/Icons/scissors-cut-line-icon.js +13 -0
- package/dist/component/Icons/screenshot-line-icon.d.ts +6 -0
- package/dist/component/Icons/screenshot-line-icon.js +13 -0
- package/dist/component/Icons/scroll-to-bottom-line-icon.d.ts +6 -0
- package/dist/component/Icons/scroll-to-bottom-line-icon.js +13 -0
- package/dist/component/Icons/separator-icon.d.ts +6 -0
- package/dist/component/Icons/separator-icon.js +13 -0
- package/dist/component/Icons/share-box-line-icon.d.ts +6 -0
- package/dist/component/Icons/share-box-line-icon.js +13 -0
- package/dist/component/Icons/slash-commands-2-icon.d.ts +3 -0
- package/dist/component/Icons/slash-commands-2-icon.js +13 -0
- package/dist/component/Icons/speed-line-icon.d.ts +6 -0
- package/dist/component/Icons/speed-line-icon.js +13 -0
- package/dist/component/Icons/split-cells-horizontal-icon.d.ts +6 -0
- package/dist/component/Icons/split-cells-horizontal-icon.js +13 -0
- package/dist/component/Icons/split-cells-vertical-icon.d.ts +6 -0
- package/dist/component/Icons/split-cells-vertical-icon.js +13 -0
- package/dist/component/Icons/square-root-icon.d.ts +6 -0
- package/dist/component/Icons/square-root-icon.js +13 -0
- package/dist/component/Icons/strikethrough-icon.d.ts +6 -0
- package/dist/component/Icons/strikethrough-icon.js +13 -0
- package/dist/component/Icons/subscript-icon.d.ts +6 -0
- package/dist/component/Icons/subscript-icon.js +13 -0
- package/dist/component/Icons/superscript-icon.d.ts +6 -0
- package/dist/component/Icons/superscript-icon.js +13 -0
- package/dist/component/Icons/table-2-icon.d.ts +6 -0
- package/dist/component/Icons/table-2-icon.js +13 -0
- package/dist/component/Icons/text-icon.d.ts +6 -0
- package/dist/component/Icons/text-icon.js +13 -0
- package/dist/component/Icons/text-wrap-icon.d.ts +6 -0
- package/dist/component/Icons/text-wrap-icon.js +13 -0
- package/dist/component/Icons/title-icon.d.ts +6 -0
- package/dist/component/Icons/title-icon.js +13 -0
- package/dist/component/Icons/underline-icon.d.ts +6 -0
- package/dist/component/Icons/underline-icon.js +13 -0
- package/dist/component/Icons/upload-cloud-2-line-icon.d.ts +6 -0
- package/dist/component/Icons/upload-cloud-2-line-icon.js +13 -0
- package/dist/component/Icons/upload-icon.d.ts +6 -0
- package/dist/component/Icons/upload-icon.js +13 -0
- package/dist/component/Icons/volume-mute-line-icon.d.ts +6 -0
- package/dist/component/Icons/volume-mute-line-icon.js +13 -0
- package/dist/component/Icons/volume-up-line-icon.d.ts +6 -0
- package/dist/component/Icons/volume-up-line-icon.js +13 -0
- package/dist/component/Icons/window-fill-icon.d.ts +6 -0
- package/dist/component/Icons/window-fill-icon.js +13 -0
- package/dist/component/Menu/NestedList.d.ts +14 -0
- package/dist/component/Menu/NestedList.js +151 -0
- package/dist/component/Menu/index.d.ts +4 -0
- package/dist/component/Menu/index.js +84 -0
- package/dist/component/Toolbar/EditorAlignSelect.d.ts +7 -0
- package/dist/component/Toolbar/EditorAlignSelect.js +187 -0
- package/dist/component/Toolbar/EditorCode.d.ts +7 -0
- package/dist/component/Toolbar/EditorCode.js +161 -0
- package/dist/component/Toolbar/EditorFontBgColor.d.ts +7 -0
- package/dist/component/Toolbar/EditorFontBgColor.js +244 -0
- package/dist/component/Toolbar/EditorFontColor.d.ts +7 -0
- package/dist/component/Toolbar/EditorFontColor.js +246 -0
- package/dist/component/Toolbar/EditorFontSize.d.ts +7 -0
- package/dist/component/Toolbar/EditorFontSize.js +149 -0
- package/dist/component/Toolbar/EditorHeading.d.ts +7 -0
- package/dist/component/Toolbar/EditorHeading.js +185 -0
- package/dist/component/Toolbar/EditorInsert/index.d.ts +7 -0
- package/dist/component/Toolbar/EditorInsert/index.js +197 -0
- package/dist/component/Toolbar/EditorListSelect.d.ts +7 -0
- package/dist/component/Toolbar/EditorListSelect.js +174 -0
- package/dist/component/Toolbar/EditorMath.d.ts +7 -0
- package/dist/component/Toolbar/EditorMath.js +159 -0
- package/dist/component/Toolbar/EditorMore/NotificationDialog.d.ts +7 -0
- package/dist/component/Toolbar/EditorMore/NotificationDialog.js +73 -0
- package/dist/component/Toolbar/EditorMore/index.d.ts +7 -0
- package/dist/component/Toolbar/EditorMore/index.js +112 -0
- package/dist/component/Toolbar/EditorScript.d.ts +7 -0
- package/dist/component/Toolbar/EditorScript.js +161 -0
- package/dist/component/Toolbar/EditorVerticalAlignSelect.d.ts +7 -0
- package/dist/component/Toolbar/EditorVerticalAlignSelect.js +174 -0
- package/dist/component/Toolbar/Item.d.ts +16 -0
- package/dist/component/Toolbar/Item.js +74 -0
- package/dist/component/Toolbar/TableSizePicker.d.ts +5 -0
- package/dist/component/Toolbar/TableSizePicker.js +80 -0
- package/dist/component/Toolbar/index.d.ts +13 -0
- package/dist/component/Toolbar/index.js +13 -0
- package/dist/component/index.d.ts +3 -0
- package/dist/component/index.js +3 -0
- package/dist/contants/enums.d.ts +32 -0
- package/dist/contants/enums.js +108 -0
- package/dist/contants/highlight.d.ts +4 -0
- package/dist/contants/highlight.js +580 -0
- package/dist/contants/placeholder.d.ts +16 -0
- package/dist/contants/placeholder.js +16 -0
- package/dist/contants/shortcut-key.d.ts +48 -0
- package/dist/contants/shortcut-key.js +224 -0
- package/dist/contants/slash-commands.d.ts +14 -0
- package/dist/contants/slash-commands.js +370 -0
- package/dist/extension/component/Alert/index.d.ts +9 -0
- package/dist/extension/component/Alert/index.js +204 -0
- package/dist/extension/component/Attachment/Insert.d.ts +13 -0
- package/dist/extension/component/Attachment/Insert.js +222 -0
- package/dist/extension/component/Attachment/Readonly.d.ts +9 -0
- package/dist/extension/component/Attachment/Readonly.js +92 -0
- package/dist/extension/component/Attachment/index.d.ts +13 -0
- package/dist/extension/component/Attachment/index.js +317 -0
- package/dist/extension/component/Audio/Insert.d.ts +10 -0
- package/dist/extension/component/Audio/Insert.js +351 -0
- package/dist/extension/component/Audio/Readonly.d.ts +8 -0
- package/dist/extension/component/Audio/Readonly.js +428 -0
- package/dist/extension/component/Audio/index.d.ts +14 -0
- package/dist/extension/component/Audio/index.js +740 -0
- package/dist/extension/component/CodeBlock/Readonly.d.ts +4 -0
- package/dist/extension/component/CodeBlock/Readonly.js +133 -0
- package/dist/extension/component/CodeBlock/index.d.ts +4 -0
- package/dist/extension/component/CodeBlock/index.js +291 -0
- package/dist/extension/component/CustomLink/Insert.d.ts +0 -0
- package/dist/extension/component/CustomLink/Insert.js +176 -0
- package/dist/extension/component/CustomLink/Readonly.d.ts +0 -0
- package/dist/extension/component/CustomLink/Readonly.js +106 -0
- package/dist/extension/component/CustomLink/index.d.ts +0 -0
- package/dist/extension/component/CustomLink/index.js +440 -0
- package/dist/extension/component/EmojiList/index.d.ts +14 -0
- package/dist/extension/component/EmojiList/index.js +104 -0
- package/dist/extension/component/Iframe/Insert.d.ts +14 -0
- package/dist/extension/component/Iframe/Insert.js +112 -0
- package/dist/extension/component/Iframe/Readonly.d.ts +10 -0
- package/dist/extension/component/Iframe/Readonly.js +14 -0
- package/dist/extension/component/Iframe/index.d.ts +5 -0
- package/dist/extension/component/Iframe/index.js +290 -0
- package/dist/extension/component/Image/Crop.d.ts +12 -0
- package/dist/extension/component/Image/Crop.js +218 -0
- package/dist/extension/component/Image/Insert.d.ts +10 -0
- package/dist/extension/component/Image/Insert.js +309 -0
- package/dist/extension/component/Image/Readonly.d.ts +8 -0
- package/dist/extension/component/Image/Readonly.js +51 -0
- package/dist/extension/component/Image/index.d.ts +21 -0
- package/dist/extension/component/Image/index.js +372 -0
- package/dist/extension/component/Link/Insert.d.ts +10 -0
- package/dist/extension/component/Link/Insert.js +253 -0
- package/dist/extension/component/Link/Readonly.d.ts +8 -0
- package/dist/extension/component/Link/Readonly.js +111 -0
- package/dist/extension/component/Link/index.d.ts +12 -0
- package/dist/extension/component/Link/index.js +515 -0
- package/dist/extension/component/Mathematics/block/Readonly.d.ts +9 -0
- package/dist/extension/component/Mathematics/block/Readonly.js +35 -0
- package/dist/extension/component/Mathematics/block/index.d.ts +8 -0
- package/dist/extension/component/Mathematics/block/index.js +149 -0
- package/dist/extension/component/Mathematics/index.d.ts +3 -0
- package/dist/extension/component/Mathematics/index.js +3 -0
- package/dist/extension/component/Mathematics/inline/Readonly.d.ts +9 -0
- package/dist/extension/component/Mathematics/inline/Readonly.js +33 -0
- package/dist/extension/component/Mathematics/inline/index.d.ts +8 -0
- package/dist/extension/component/Mathematics/inline/index.js +148 -0
- package/dist/extension/component/MentionList/index.d.ts +13 -0
- package/dist/extension/component/MentionList/index.js +92 -0
- package/dist/extension/component/SlashCommandsList/Overlay.d.ts +10 -0
- package/dist/extension/component/SlashCommandsList/Overlay.js +26 -0
- package/dist/extension/component/SlashCommandsList/index.d.ts +4 -0
- package/dist/extension/component/SlashCommandsList/index.js +266 -0
- package/dist/extension/component/Table/ContextMenu.d.ts +10 -0
- package/dist/extension/component/Table/ContextMenu.js +228 -0
- package/dist/extension/component/Table/TableContextMenuPlugin.d.ts +9 -0
- package/dist/extension/component/Table/TableContextMenuPlugin.js +272 -0
- package/dist/extension/component/Table/index.d.ts +2 -0
- package/dist/extension/component/Table/index.js +2 -0
- package/dist/extension/component/UploadProgress/index.d.ts +10 -0
- package/dist/extension/component/UploadProgress/index.js +103 -0
- package/dist/extension/component/Video/Insert.d.ts +10 -0
- package/dist/extension/component/Video/Insert.js +257 -0
- package/dist/extension/component/Video/Readonly.d.ts +8 -0
- package/dist/extension/component/Video/Readonly.js +40 -0
- package/dist/extension/component/Video/index.d.ts +14 -0
- package/dist/extension/component/Video/index.js +166 -0
- package/dist/extension/extension/SlashCommands.d.ts +3 -0
- package/dist/extension/extension/SlashCommands.js +25 -0
- package/dist/extension/extension/StructuredDiff.d.ts +18 -0
- package/dist/extension/extension/StructuredDiff.js +131 -0
- package/dist/extension/extension/index.d.ts +2 -0
- package/dist/extension/extension/index.js +2 -0
- package/dist/extension/index.d.ts +2 -0
- package/dist/extension/index.js +146 -0
- package/dist/extension/mark/Code.d.ts +2 -0
- package/dist/extension/mark/Code.js +9 -0
- package/dist/extension/mark/Link.d.ts +0 -0
- package/dist/extension/mark/Link.js +58 -0
- package/dist/extension/mark/index.d.ts +0 -0
- package/dist/extension/mark/index.js +1 -0
- package/dist/extension/node/Alert.d.ts +33 -0
- package/dist/extension/node/Alert.js +116 -0
- package/dist/extension/node/Attachment.d.ts +28 -0
- package/dist/extension/node/Attachment.js +227 -0
- package/dist/extension/node/Audio.d.ts +23 -0
- package/dist/extension/node/Audio.js +194 -0
- package/dist/extension/node/CodeBlockLowlight.d.ts +1 -0
- package/dist/extension/node/CodeBlockLowlight.js +42 -0
- package/dist/extension/node/Details.d.ts +3 -0
- package/dist/extension/node/Details.js +39 -0
- package/dist/extension/node/Emoji.d.ts +1 -0
- package/dist/extension/node/Emoji.js +7 -0
- package/dist/extension/node/FileHandler.d.ts +4 -0
- package/dist/extension/node/FileHandler.js +294 -0
- package/dist/extension/node/Iframe.d.ts +16 -0
- package/dist/extension/node/Iframe.js +120 -0
- package/dist/extension/node/Image.d.ts +3 -0
- package/dist/extension/node/Image.js +38 -0
- package/dist/extension/node/Indent.d.ts +17 -0
- package/dist/extension/node/Indent.js +103 -0
- package/dist/extension/node/Link/helpers/autolink.d.ts +15 -0
- package/dist/extension/node/Link/helpers/autolink.js +162 -0
- package/dist/extension/node/Link/helpers/clickHandler.d.ts +10 -0
- package/dist/extension/node/Link/helpers/clickHandler.js +46 -0
- package/dist/extension/node/Link/helpers/pasteHandler.d.ts +10 -0
- package/dist/extension/node/Link/helpers/pasteHandler.js +32 -0
- package/dist/extension/node/Link/helpers/whitespace.d.ts +4 -0
- package/dist/extension/node/Link/helpers/whitespace.js +6 -0
- package/dist/extension/node/Link/index.d.ts +162 -0
- package/dist/extension/node/Link/index.js +462 -0
- package/dist/extension/node/ListKit.d.ts +2 -0
- package/dist/extension/node/ListKit.js +23 -0
- package/dist/extension/node/Mathematics.d.ts +27 -0
- package/dist/extension/node/Mathematics.js +97 -0
- package/dist/extension/node/Mention.d.ts +2 -0
- package/dist/extension/node/Mention.js +10 -0
- package/dist/extension/node/Table.d.ts +5 -0
- package/dist/extension/node/Table.js +283 -0
- package/dist/extension/node/TableOfContents/index.d.ts +9 -0
- package/dist/extension/node/TableOfContents/index.js +391 -0
- package/dist/extension/node/TableOfContents/plugin.d.ts +6 -0
- package/dist/extension/node/TableOfContents/plugin.js +58 -0
- package/dist/extension/node/TableOfContents/type.d.ts +45 -0
- package/dist/extension/node/TableOfContents/type.js +1 -0
- package/dist/extension/node/TableOfContents/utils.d.ts +6 -0
- package/dist/extension/node/TableOfContents/utils.js +70 -0
- package/dist/extension/node/UploadProgress.d.ts +21 -0
- package/dist/extension/node/UploadProgress.js +135 -0
- package/dist/extension/node/VerticalAlign.d.ts +49 -0
- package/dist/extension/node/VerticalAlign.js +88 -0
- package/dist/extension/node/Video.d.ts +23 -0
- package/dist/extension/node/Video.js +195 -0
- package/dist/extension/node/Youtube.d.ts +3 -0
- package/dist/extension/node/Youtube.js +14 -0
- package/dist/extension/node/index.d.ts +20 -0
- package/dist/extension/node/index.js +20 -0
- package/dist/extension/suggestion/emoji.d.ts +3 -0
- package/dist/extension/suggestion/emoji.js +57 -0
- package/dist/extension/suggestion/mention.d.ts +4 -0
- package/dist/extension/suggestion/mention.js +88 -0
- package/dist/extension/suggestion/slash.d.ts +39 -0
- package/dist/extension/suggestion/slash.js +94 -0
- package/dist/hook/fn.d.ts +13 -0
- package/dist/hook/fn.js +37 -0
- package/dist/hook/index.d.ts +4 -0
- package/dist/hook/index.js +110 -0
- package/dist/index.css +555 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +8 -0
- package/dist/themes/color.d.ts +5 -0
- package/dist/themes/color.js +4 -0
- package/dist/themes/componentStyleOverrides.d.ts +365 -0
- package/dist/themes/componentStyleOverrides.js +392 -0
- package/dist/themes/custom.d.ts +5 -0
- package/dist/themes/custom.js +4 -0
- package/dist/themes/dark.d.ts +84 -0
- package/dist/themes/dark.js +84 -0
- package/dist/themes/index.d.ts +19 -0
- package/dist/themes/index.js +37 -0
- package/dist/themes/light.d.ts +84 -0
- package/dist/themes/light.js +84 -0
- package/dist/themes/palette.d.ts +92 -0
- package/dist/themes/palette.js +24 -0
- package/dist/themes/shadows.d.ts +2 -0
- package/dist/themes/shadows.js +3 -0
- package/dist/themes/themeContext.d.ts +8 -0
- package/dist/themes/themeContext.js +3 -0
- package/dist/themes/typography.d.ts +6 -0
- package/dist/themes/typography.js +8 -0
- package/dist/type/index.d.ts +121 -0
- package/dist/type/index.js +1 -0
- package/dist/types/images.d.ts +19 -0
- package/dist/util/decorations.d.ts +22 -0
- package/dist/util/decorations.js +302 -0
- package/dist/util/fileDownload.d.ts +16 -0
- package/dist/util/fileDownload.js +268 -0
- package/dist/util/fileHandler.d.ts +7 -0
- package/dist/util/fileHandler.js +79 -0
- package/dist/util/floating.d.ts +3 -0
- package/dist/util/floating.js +23 -0
- package/dist/util/index.d.ts +12 -0
- package/dist/util/index.js +40 -0
- package/dist/util/linewiseConvert.d.ts +40 -0
- package/dist/util/linewiseConvert.js +221 -0
- package/dist/util/migrateMathStrings.d.ts +73 -0
- package/dist/util/migrateMathStrings.js +192 -0
- package/dist/util/resourceExtractor.d.ts +15 -0
- package/dist/util/resourceExtractor.js +61 -0
- package/dist/util/shortcutKey.d.ts +2 -0
- package/dist/util/shortcutKey.js +9 -0
- package/dist/util/structuredDiff.d.ts +59 -0
- package/dist/util/structuredDiff.js +550 -0
- package/package.json +1 -1
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// 判断文件类型
|
|
2
|
+
export var getFileType = function getFileType(file) {
|
|
3
|
+
var type = file.type;
|
|
4
|
+
if (type.startsWith('image/')) {
|
|
5
|
+
return 'image';
|
|
6
|
+
}
|
|
7
|
+
if (type.startsWith('video/')) {
|
|
8
|
+
return 'video';
|
|
9
|
+
}
|
|
10
|
+
return 'other';
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
// 格式化文件大小
|
|
14
|
+
export var formatFileSize = function formatFileSize(bytes) {
|
|
15
|
+
if (bytes === 0) return '0 Bytes';
|
|
16
|
+
var k = 1024;
|
|
17
|
+
var sizes = ['Bytes', 'KB', 'MB', 'GB'];
|
|
18
|
+
var i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
19
|
+
return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
// 获取文件图标
|
|
23
|
+
export var getFileIcon = function getFileIcon(fileName) {
|
|
24
|
+
var _fileName$split$pop;
|
|
25
|
+
var extension = (_fileName$split$pop = fileName.split('.').pop()) === null || _fileName$split$pop === void 0 ? void 0 : _fileName$split$pop.toLowerCase();
|
|
26
|
+
switch (extension) {
|
|
27
|
+
case 'pdf':
|
|
28
|
+
return '📄';
|
|
29
|
+
case 'doc':
|
|
30
|
+
case 'docx':
|
|
31
|
+
return '📝';
|
|
32
|
+
case 'xls':
|
|
33
|
+
case 'xlsx':
|
|
34
|
+
return '📊';
|
|
35
|
+
case 'ppt':
|
|
36
|
+
case 'pptx':
|
|
37
|
+
return '📋';
|
|
38
|
+
case 'zip':
|
|
39
|
+
case 'rar':
|
|
40
|
+
case '7z':
|
|
41
|
+
return '🗜️';
|
|
42
|
+
case 'txt':
|
|
43
|
+
return '📄';
|
|
44
|
+
case 'mp3':
|
|
45
|
+
case 'wav':
|
|
46
|
+
case 'flac':
|
|
47
|
+
return '🎵';
|
|
48
|
+
default:
|
|
49
|
+
return '📎';
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
// 插入图片内容
|
|
54
|
+
export var insertImageContent = function insertImageContent(editor, url, pos) {
|
|
55
|
+
editor.chain().focus().insertContentAt(pos, {
|
|
56
|
+
type: 'image',
|
|
57
|
+
attrs: {
|
|
58
|
+
src: url
|
|
59
|
+
}
|
|
60
|
+
}).run();
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
// 插入视频内容
|
|
64
|
+
export var insertVideoContent = function insertVideoContent(editor, url, pos) {
|
|
65
|
+
editor.chain().focus().insertContentAt(pos, {
|
|
66
|
+
type: 'video',
|
|
67
|
+
attrs: {
|
|
68
|
+
src: url
|
|
69
|
+
}
|
|
70
|
+
}).run();
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
// 插入附件内容
|
|
74
|
+
export var insertAttachmentContent = function insertAttachmentContent(editor, url, fileName, fileSize, pos) {
|
|
75
|
+
var icon = getFileIcon(fileName);
|
|
76
|
+
var size = formatFileSize(fileSize);
|
|
77
|
+
var attachmentHtml = "\n <div style=\"border: 1px solid #e1e5e9; border-radius: 8px; padding: 12px; margin: 8px 0; background-color: #f8f9fa; display: flex; align-items: center; gap: 12px; max-width: 400px;\">\n <span style=\"font-size: 24px;\">".concat(icon, "</span>\n <div style=\"flex: 1; min-width: 0;\">\n <div style=\"font-weight: 500; color: #1f2937; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\">\n <a href=\"").concat(url, "\" target=\"_blank\" style=\"color: #3b82f6; text-decoration: none;\">").concat(fileName, "</a>\n </div>\n <div style=\"font-size: 12px; color: #6b7280; margin-top: 2px;\">").concat(size, "</div>\n </div>\n <div style=\"color: #6b7280;\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"></path>\n <polyline points=\"7,10 12,15 17,10\"></polyline>\n <line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"></line>\n </svg>\n </div>\n </div>\n ");
|
|
78
|
+
editor.chain().focus().insertContentAt(pos, attachmentHtml).run();
|
|
79
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { computePosition, flip, shift } from "@floating-ui/dom";
|
|
2
|
+
import { posToDOMRect } from "@tiptap/core";
|
|
3
|
+
export var updatePosition = function updatePosition(editor, element) {
|
|
4
|
+
var strategy = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'absolute';
|
|
5
|
+
var virtualElement = {
|
|
6
|
+
getBoundingClientRect: function getBoundingClientRect() {
|
|
7
|
+
return posToDOMRect(editor.view, editor.state.selection.from, editor.state.selection.to);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
computePosition(virtualElement, element, {
|
|
11
|
+
placement: 'bottom-start',
|
|
12
|
+
strategy: strategy,
|
|
13
|
+
middleware: [shift(), flip()]
|
|
14
|
+
}).then(function (_ref) {
|
|
15
|
+
var x = _ref.x,
|
|
16
|
+
y = _ref.y,
|
|
17
|
+
strategy = _ref.strategy;
|
|
18
|
+
element.style.width = 'max-content';
|
|
19
|
+
element.style.position = strategy;
|
|
20
|
+
element.style.left = "".concat(x, "px");
|
|
21
|
+
element.style.top = "".concat(y, "px");
|
|
22
|
+
});
|
|
23
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * from './fileDownload';
|
|
2
|
+
export * from './fileHandler';
|
|
3
|
+
export * from './floating';
|
|
4
|
+
export * from './linewiseConvert';
|
|
5
|
+
export * from './migrateMathStrings';
|
|
6
|
+
export * from './resourceExtractor';
|
|
7
|
+
export * from './shortcutKey';
|
|
8
|
+
import { Editor } from '@tiptap/react';
|
|
9
|
+
export declare const formatFileSize: (bytes: number) => string;
|
|
10
|
+
export declare const insertNodeAfterPosition: (editor: Editor, pos: number, nodeContent: any) => void;
|
|
11
|
+
export declare function addOpacityToColor(color: string, opacity: number): string;
|
|
12
|
+
export declare const getLinkTitle: (href: string) => string;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export * from "./fileDownload";
|
|
2
|
+
export * from "./fileHandler";
|
|
3
|
+
export * from "./floating";
|
|
4
|
+
export * from "./linewiseConvert";
|
|
5
|
+
export * from "./migrateMathStrings";
|
|
6
|
+
export * from "./resourceExtractor";
|
|
7
|
+
export * from "./shortcutKey";
|
|
8
|
+
export var formatFileSize = function formatFileSize(bytes) {
|
|
9
|
+
if (bytes === 0) return '0 B';
|
|
10
|
+
var k = 1024;
|
|
11
|
+
var sizes = ['B', 'KB', 'MB', 'GB'];
|
|
12
|
+
var i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
13
|
+
return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
|
|
14
|
+
};
|
|
15
|
+
export var insertNodeAfterPosition = function insertNodeAfterPosition(editor, pos, nodeContent) {
|
|
16
|
+
editor.chain().focus().insertContentAt(pos, nodeContent).run();
|
|
17
|
+
};
|
|
18
|
+
export function addOpacityToColor(color, opacity) {
|
|
19
|
+
var red, green, blue;
|
|
20
|
+
if (color.startsWith("#")) {
|
|
21
|
+
red = parseInt(color.slice(1, 3), 16);
|
|
22
|
+
green = parseInt(color.slice(3, 5), 16);
|
|
23
|
+
blue = parseInt(color.slice(5, 7), 16);
|
|
24
|
+
} else if (color.startsWith("rgb")) {
|
|
25
|
+
var matches = color.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)/);
|
|
26
|
+
red = parseInt(matches[1], 10);
|
|
27
|
+
green = parseInt(matches[2], 10);
|
|
28
|
+
blue = parseInt(matches[3], 10);
|
|
29
|
+
} else {
|
|
30
|
+
return "";
|
|
31
|
+
}
|
|
32
|
+
var alpha = opacity;
|
|
33
|
+
return "rgba(".concat(red, ", ").concat(green, ", ").concat(blue, ", ").concat(alpha, ")");
|
|
34
|
+
}
|
|
35
|
+
export var getLinkTitle = function getLinkTitle(href) {
|
|
36
|
+
var paths = href.split('/').filter(function (it) {
|
|
37
|
+
return it.trim().length > 0;
|
|
38
|
+
});
|
|
39
|
+
return paths[paths.length - 1];
|
|
40
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Fragment, Node as PMNode } from '@tiptap/pm/model';
|
|
2
|
+
import { Editor } from '@tiptap/react';
|
|
3
|
+
export type LinewiseTarget = {
|
|
4
|
+
type: 'paragraph';
|
|
5
|
+
} | {
|
|
6
|
+
type: 'heading';
|
|
7
|
+
level: 1 | 2 | 3 | 4 | 5 | 6;
|
|
8
|
+
} | {
|
|
9
|
+
type: 'orderedList';
|
|
10
|
+
} | {
|
|
11
|
+
type: 'bulletList';
|
|
12
|
+
} | {
|
|
13
|
+
type: 'taskList';
|
|
14
|
+
} | {
|
|
15
|
+
type: 'blockquote';
|
|
16
|
+
} | {
|
|
17
|
+
type: 'alert';
|
|
18
|
+
attrs?: {
|
|
19
|
+
variant?: string;
|
|
20
|
+
type?: 'icon' | 'text';
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* 提取节点的“行”文本:
|
|
25
|
+
* - paragraph/heading:单行
|
|
26
|
+
* - blockquote:子块逐段(按段)
|
|
27
|
+
* - codeBlock:按换行
|
|
28
|
+
* - alert:按换行
|
|
29
|
+
* - list(ordered/bullet/task):每个 listItem 作为一行(包含其文本内容)
|
|
30
|
+
* - 其他:作为单行处理
|
|
31
|
+
*/
|
|
32
|
+
export declare function extractLinesFromNode(node: PMNode): string[];
|
|
33
|
+
/**
|
|
34
|
+
* 根据目标类型,构造对应的节点或片段。
|
|
35
|
+
*/
|
|
36
|
+
export declare function buildNodeFromLines(editor: Editor, lines: string[], target: LinewiseTarget): PMNode | Fragment;
|
|
37
|
+
/**
|
|
38
|
+
* 将给定位置的节点转换为目标类型(按行规则)。
|
|
39
|
+
*/
|
|
40
|
+
export declare function convertNodeAt(editor: Editor, pos: number, node: PMNode, target: LinewiseTarget): void;
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
2
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
5
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
6
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
7
|
+
import { Fragment } from '@tiptap/pm/model';
|
|
8
|
+
/**
|
|
9
|
+
* 提取节点的“行”文本:
|
|
10
|
+
* - paragraph/heading:单行
|
|
11
|
+
* - blockquote:子块逐段(按段)
|
|
12
|
+
* - codeBlock:按换行
|
|
13
|
+
* - alert:按换行
|
|
14
|
+
* - list(ordered/bullet/task):每个 listItem 作为一行(包含其文本内容)
|
|
15
|
+
* - 其他:作为单行处理
|
|
16
|
+
*/
|
|
17
|
+
export function extractLinesFromNode(node) {
|
|
18
|
+
var type = node.type.name;
|
|
19
|
+
|
|
20
|
+
// Helper: split textContent by \n and去除首尾空白但保留空行的结构
|
|
21
|
+
var splitByNewline = function splitByNewline(text) {
|
|
22
|
+
return text.split('\n');
|
|
23
|
+
};
|
|
24
|
+
if (type === 'paragraph' || type === 'heading') {
|
|
25
|
+
return [node.textContent];
|
|
26
|
+
}
|
|
27
|
+
if (type === 'blockquote') {
|
|
28
|
+
var lines = [];
|
|
29
|
+
node.forEach(function (child) {
|
|
30
|
+
var text = child.textContent;
|
|
31
|
+
if (text.includes('\n')) {
|
|
32
|
+
lines.push.apply(lines, _toConsumableArray(splitByNewline(text)));
|
|
33
|
+
} else {
|
|
34
|
+
lines.push(text);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
return lines;
|
|
38
|
+
}
|
|
39
|
+
if (type === 'codeBlock') {
|
|
40
|
+
return splitByNewline(node.textContent);
|
|
41
|
+
}
|
|
42
|
+
if (type === 'alert') {
|
|
43
|
+
return splitByNewline(node.textContent);
|
|
44
|
+
}
|
|
45
|
+
if (type === 'orderedList' || type === 'bulletList' || type === 'taskList') {
|
|
46
|
+
var _lines = [];
|
|
47
|
+
node.forEach(function (listItem) {
|
|
48
|
+
var text = listItem.textContent;
|
|
49
|
+
if (text.includes('\n')) {
|
|
50
|
+
_lines.push.apply(_lines, _toConsumableArray(splitByNewline(text)));
|
|
51
|
+
} else {
|
|
52
|
+
_lines.push(text);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
return _lines;
|
|
56
|
+
}
|
|
57
|
+
return [node.textContent];
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* 根据目标类型,构造对应的节点或片段。
|
|
62
|
+
*/
|
|
63
|
+
export function buildNodeFromLines(editor, lines, target) {
|
|
64
|
+
var schema = editor.schema;
|
|
65
|
+
var createParagraph = function createParagraph(text) {
|
|
66
|
+
return schema.nodes.paragraph.create(undefined, text ? schema.text(text) : undefined);
|
|
67
|
+
};
|
|
68
|
+
var createHeading = function createHeading(text, level) {
|
|
69
|
+
return schema.nodes.heading.create({
|
|
70
|
+
level: level
|
|
71
|
+
}, text ? schema.text(text) : undefined);
|
|
72
|
+
};
|
|
73
|
+
var createListItem = function createListItem(text) {
|
|
74
|
+
return schema.nodes.listItem.create(undefined, createParagraph(text));
|
|
75
|
+
};
|
|
76
|
+
var createTaskItem = function createTaskItem(text) {
|
|
77
|
+
return schema.nodes.taskItem ? schema.nodes.taskItem.create({
|
|
78
|
+
checked: false
|
|
79
|
+
}, createParagraph(text)) : createListItem(text);
|
|
80
|
+
};
|
|
81
|
+
switch (target.type) {
|
|
82
|
+
case 'paragraph':
|
|
83
|
+
{
|
|
84
|
+
var nodes = lines.map(function (l) {
|
|
85
|
+
return createParagraph(l);
|
|
86
|
+
});
|
|
87
|
+
return Fragment.fromArray(nodes);
|
|
88
|
+
}
|
|
89
|
+
case 'heading':
|
|
90
|
+
{
|
|
91
|
+
var _nodes = lines.map(function (l) {
|
|
92
|
+
return createHeading(l, target.level);
|
|
93
|
+
});
|
|
94
|
+
return Fragment.fromArray(_nodes);
|
|
95
|
+
}
|
|
96
|
+
case 'orderedList':
|
|
97
|
+
{
|
|
98
|
+
var items = lines.map(function (l) {
|
|
99
|
+
return createListItem(l);
|
|
100
|
+
});
|
|
101
|
+
return schema.nodes.orderedList.create(undefined, Fragment.fromArray(items));
|
|
102
|
+
}
|
|
103
|
+
case 'bulletList':
|
|
104
|
+
{
|
|
105
|
+
var _items = lines.map(function (l) {
|
|
106
|
+
return createListItem(l);
|
|
107
|
+
});
|
|
108
|
+
return schema.nodes.bulletList.create(undefined, Fragment.fromArray(_items));
|
|
109
|
+
}
|
|
110
|
+
case 'taskList':
|
|
111
|
+
{
|
|
112
|
+
var _items2 = lines.map(function (l) {
|
|
113
|
+
return createTaskItem(l);
|
|
114
|
+
});
|
|
115
|
+
if (schema.nodes.taskList) {
|
|
116
|
+
return schema.nodes.taskList.create(undefined, Fragment.fromArray(_items2));
|
|
117
|
+
}
|
|
118
|
+
return schema.nodes.bulletList.create(undefined, Fragment.fromArray(_items2));
|
|
119
|
+
}
|
|
120
|
+
case 'blockquote':
|
|
121
|
+
{
|
|
122
|
+
var paragraphs = lines.map(function (l) {
|
|
123
|
+
return createParagraph(l);
|
|
124
|
+
});
|
|
125
|
+
return schema.nodes.blockquote.create(undefined, Fragment.fromArray(paragraphs));
|
|
126
|
+
}
|
|
127
|
+
case 'alert':
|
|
128
|
+
{
|
|
129
|
+
var attrs = target.attrs || {
|
|
130
|
+
variant: 'info',
|
|
131
|
+
type: 'icon'
|
|
132
|
+
};
|
|
133
|
+
// 使用 hardBreak 分隔行
|
|
134
|
+
var pieces = [];
|
|
135
|
+
lines.forEach(function (l, i) {
|
|
136
|
+
if (l) pieces.push(schema.text(l));
|
|
137
|
+
if (i < lines.length - 1) {
|
|
138
|
+
if (schema.nodes.hardBreak) {
|
|
139
|
+
pieces.push(schema.nodes.hardBreak.create());
|
|
140
|
+
} else {
|
|
141
|
+
// 退化:用文本换行符
|
|
142
|
+
pieces.push(schema.text('\n'));
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
var content = pieces.length > 0 ? Fragment.fromArray(pieces) : undefined;
|
|
147
|
+
return schema.nodes.alert.create(attrs, content);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* 通用替换与派发
|
|
154
|
+
*/
|
|
155
|
+
function replaceRange(editor, from, to, content) {
|
|
156
|
+
var tr = editor.state.tr;
|
|
157
|
+
tr.replaceWith(from, to, content);
|
|
158
|
+
editor.view.dispatch(tr);
|
|
159
|
+
editor.view.focus();
|
|
160
|
+
}
|
|
161
|
+
function isContainerNode(node) {
|
|
162
|
+
var name = node.type.name;
|
|
163
|
+
return name === 'blockquote' || name === 'alert';
|
|
164
|
+
}
|
|
165
|
+
function isContainerTarget(target) {
|
|
166
|
+
return target.type === 'blockquote' || target.type === 'alert';
|
|
167
|
+
}
|
|
168
|
+
function createContainerWithContent(editor, target, content) {
|
|
169
|
+
var schema = editor.schema;
|
|
170
|
+
if (target.type === 'blockquote') {
|
|
171
|
+
return schema.nodes.blockquote.create(undefined, content);
|
|
172
|
+
}
|
|
173
|
+
if (target.type === 'alert') {
|
|
174
|
+
var attrs = target.attrs || {
|
|
175
|
+
variant: 'info',
|
|
176
|
+
type: 'icon'
|
|
177
|
+
};
|
|
178
|
+
return schema.nodes.alert.create(attrs, content);
|
|
179
|
+
}
|
|
180
|
+
throw new Error('createContainerWithContent: invalid container target');
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* 将给定位置的节点转换为目标类型(按行规则)。
|
|
185
|
+
*/
|
|
186
|
+
export function convertNodeAt(editor, pos, node, target) {
|
|
187
|
+
var from = pos;
|
|
188
|
+
var to = pos + node.nodeSize;
|
|
189
|
+
var nodeType = node.type.name;
|
|
190
|
+
|
|
191
|
+
// 规则 1:目标为容器(blockquote/alert)
|
|
192
|
+
if (isContainerTarget(target)) {
|
|
193
|
+
// 再次点击同容器 -> 拆包
|
|
194
|
+
if (target.type === 'blockquote' && nodeType === 'blockquote' || target.type === 'alert' && nodeType === 'alert') {
|
|
195
|
+
replaceRange(editor, from, to, node.content);
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
// 容器互转:用内部内容构造目标容器,避免嵌套
|
|
199
|
+
var content = isContainerNode(node) ? node.content : Fragment.from(node);
|
|
200
|
+
var wrapper = createContainerWithContent(editor, target, content);
|
|
201
|
+
replaceRange(editor, from, to, wrapper);
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
// 规则 2:当前为容器,且目标为非容器 -> 子节点逐个转换
|
|
206
|
+
if (isContainerNode(node)) {
|
|
207
|
+
var nodesToInsert = [];
|
|
208
|
+
node.forEach(function (child) {
|
|
209
|
+
var built = buildNodeFromLines(editor, extractLinesFromNode(child), target);
|
|
210
|
+
Fragment.from(built).forEach(function (n) {
|
|
211
|
+
nodesToInsert.push(n);
|
|
212
|
+
});
|
|
213
|
+
});
|
|
214
|
+
replaceRange(editor, from, to, Fragment.fromArray(nodesToInsert));
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
// 其他:按行构建单节点替换
|
|
219
|
+
var replacement = buildNodeFromLines(editor, extractLinesFromNode(node), target);
|
|
220
|
+
replaceRange(editor, from, to, replacement);
|
|
221
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { Editor } from '@tiptap/core';
|
|
2
|
+
import type { Transaction } from '@tiptap/pm/state';
|
|
3
|
+
/**
|
|
4
|
+
* Regular expression to match LaTeX math strings wrapped in single dollar signs.
|
|
5
|
+
* This should not catch dollar signs which are not part of a math expression,
|
|
6
|
+
* like those used for currency or other purposes.
|
|
7
|
+
* It ensures that the dollar signs are not preceded or followed by digits,
|
|
8
|
+
* allowing for proper identification of inline math expressions.
|
|
9
|
+
*
|
|
10
|
+
* - `$x^2 + y^2 = z^2$` will match
|
|
11
|
+
* - `This is $inline math$ in text.` will match
|
|
12
|
+
* - `This is $100$ dollars.` will not match (as it is not a math expression)
|
|
13
|
+
* - `This is $x^2 + y^2 = z^2$ and $100$ dollars.` will match both math expressions
|
|
14
|
+
* - `$$\frac{a}{b}$$` will NOT match (block math should be handled separately)
|
|
15
|
+
*/
|
|
16
|
+
export declare const mathMigrationRegex: RegExp;
|
|
17
|
+
/**
|
|
18
|
+
* Regular expression to match LaTeX math strings wrapped in double dollar signs.
|
|
19
|
+
* This matches block-level math expressions that should be displayed on their own line.
|
|
20
|
+
*
|
|
21
|
+
* - `$$\frac{a}{b}$$` will match
|
|
22
|
+
* - `$$\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}$$` will match
|
|
23
|
+
* - `$$100$$ dollars` will not match (as it is not a math expression)
|
|
24
|
+
*/
|
|
25
|
+
export declare const blockMathMigrationRegex: RegExp;
|
|
26
|
+
/**
|
|
27
|
+
* Alternative approach: First find all math patterns, then classify them
|
|
28
|
+
* This is more reliable than trying to use complex regex patterns
|
|
29
|
+
*/
|
|
30
|
+
export declare const allMathPatternsRegex: RegExp;
|
|
31
|
+
/**
|
|
32
|
+
* Creates a transaction that migrates existing math strings in the document to new math nodes.
|
|
33
|
+
* This function traverses the document and replaces LaTeX math syntax with proper math nodes,
|
|
34
|
+
* preserving the mathematical content. It handles both inline and block math expressions.
|
|
35
|
+
*
|
|
36
|
+
* Note: Math formulas inside <pre> and <code> tags are ignored to preserve code formatting.
|
|
37
|
+
*
|
|
38
|
+
* @param editor - The editor instance containing the schema and configuration
|
|
39
|
+
* @param tr - The transaction to modify with the migration operations
|
|
40
|
+
* @returns The modified transaction with math string replacements
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* const editor = new Editor({ ... })
|
|
45
|
+
* const tr = editor.state.tr
|
|
46
|
+
* const updatedTr = createMathMigrateTransaction(editor, tr)
|
|
47
|
+
* editor.view.dispatch(updatedTr)
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export declare function createMathMigrateTransaction(editor: Editor, tr: Transaction): Transaction;
|
|
51
|
+
/**
|
|
52
|
+
* Migrates existing math strings in the editor document to math nodes.
|
|
53
|
+
* This function creates and dispatches a transaction that converts LaTeX math syntax
|
|
54
|
+
* into proper math nodes. It handles both inline math (single dollar signs) and
|
|
55
|
+
* block math (double dollar signs). The migration happens immediately and is not
|
|
56
|
+
* added to the editor's history.
|
|
57
|
+
*
|
|
58
|
+
* Note: Math formulas inside <pre> and <code> tags are ignored to preserve code formatting.
|
|
59
|
+
*
|
|
60
|
+
* @param editor - The editor instance to perform the migration on
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```typescript
|
|
64
|
+
* const editor = new Editor({
|
|
65
|
+
* extensions: [Mathematics],
|
|
66
|
+
* content: 'This is inline math: $x^2 + y^2 = z^2$ and block math: $$\frac{a}{b}$$'
|
|
67
|
+
* })
|
|
68
|
+
*
|
|
69
|
+
* // Math strings will be automatically migrated to math nodes
|
|
70
|
+
* migrateMathStrings(editor)
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export declare function migrateMathStrings(editor: Editor): void;
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Regular expression to match LaTeX math strings wrapped in single dollar signs.
|
|
3
|
+
* This should not catch dollar signs which are not part of a math expression,
|
|
4
|
+
* like those used for currency or other purposes.
|
|
5
|
+
* It ensures that the dollar signs are not preceded or followed by digits,
|
|
6
|
+
* allowing for proper identification of inline math expressions.
|
|
7
|
+
*
|
|
8
|
+
* - `$x^2 + y^2 = z^2$` will match
|
|
9
|
+
* - `This is $inline math$ in text.` will match
|
|
10
|
+
* - `This is $100$ dollars.` will not match (as it is not a math expression)
|
|
11
|
+
* - `This is $x^2 + y^2 = z^2$ and $100$ dollars.` will match both math expressions
|
|
12
|
+
* - `$$\frac{a}{b}$$` will NOT match (block math should be handled separately)
|
|
13
|
+
*/
|
|
14
|
+
export var mathMigrationRegex = /\$(?!\d+\$)(?!\$)(.+?)(?<!\$)\$(?!\d)(?!\$)/g;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Regular expression to match LaTeX math strings wrapped in double dollar signs.
|
|
18
|
+
* This matches block-level math expressions that should be displayed on their own line.
|
|
19
|
+
*
|
|
20
|
+
* - `$$\frac{a}{b}$$` will match
|
|
21
|
+
* - `$$\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}$$` will match
|
|
22
|
+
* - `$$100$$ dollars` will not match (as it is not a math expression)
|
|
23
|
+
*/
|
|
24
|
+
export var blockMathMigrationRegex = /\$\$([^$]+)\$\$/g;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Alternative approach: First find all math patterns, then classify them
|
|
28
|
+
* This is more reliable than trying to use complex regex patterns
|
|
29
|
+
*/
|
|
30
|
+
export var allMathPatternsRegex = /\$\$?[^$]*\$\$?/g;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Creates a transaction that migrates existing math strings in the document to new math nodes.
|
|
34
|
+
* This function traverses the document and replaces LaTeX math syntax with proper math nodes,
|
|
35
|
+
* preserving the mathematical content. It handles both inline and block math expressions.
|
|
36
|
+
*
|
|
37
|
+
* Note: Math formulas inside <pre> and <code> tags are ignored to preserve code formatting.
|
|
38
|
+
*
|
|
39
|
+
* @param editor - The editor instance containing the schema and configuration
|
|
40
|
+
* @param tr - The transaction to modify with the migration operations
|
|
41
|
+
* @returns The modified transaction with math string replacements
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const editor = new Editor({ ... })
|
|
46
|
+
* const tr = editor.state.tr
|
|
47
|
+
* const updatedTr = createMathMigrateTransaction(editor, tr)
|
|
48
|
+
* editor.view.dispatch(updatedTr)
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export function createMathMigrateTransaction(editor, tr) {
|
|
52
|
+
var inlineMathNode = editor.schema.nodes.inlineMath;
|
|
53
|
+
var blockMathNode = editor.schema.nodes.blockMath;
|
|
54
|
+
|
|
55
|
+
// 收集所有需要处理的数学公式,按位置排序
|
|
56
|
+
var allMathReplacements = [];
|
|
57
|
+
|
|
58
|
+
// 第一遍:收集所有数学公式信息
|
|
59
|
+
tr.doc.descendants(function (node, pos) {
|
|
60
|
+
// 跳过代码块和预格式化文本
|
|
61
|
+
if (node.marks.some(function (mark) {
|
|
62
|
+
return mark.type.name === 'codeBlock' || mark.type.name === 'code';
|
|
63
|
+
})) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (!node.isText || !node.text || !node.text.includes('$')) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
var text = node.text;
|
|
70
|
+
|
|
71
|
+
// 使用更可靠的方法:先找到所有可能的数学模式,然后分类
|
|
72
|
+
var allMatches = text.match(allMathPatternsRegex);
|
|
73
|
+
if (!allMatches) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// 按位置排序,从后往前处理,避免位置偏移问题
|
|
78
|
+
var sortedMatches = allMatches.map(function (match) {
|
|
79
|
+
var isBlock = match.startsWith('$$') && match.endsWith('$$');
|
|
80
|
+
var type = isBlock ? 'block' : 'inline';
|
|
81
|
+
return {
|
|
82
|
+
match: match,
|
|
83
|
+
start: text.indexOf(match),
|
|
84
|
+
end: text.indexOf(match) + match.length,
|
|
85
|
+
type: type
|
|
86
|
+
};
|
|
87
|
+
}).sort(function (a, b) {
|
|
88
|
+
return b.start - a.start;
|
|
89
|
+
}); // 从后往前排序
|
|
90
|
+
|
|
91
|
+
sortedMatches.forEach(function (_ref) {
|
|
92
|
+
var match = _ref.match,
|
|
93
|
+
start = _ref.start,
|
|
94
|
+
end = _ref.end,
|
|
95
|
+
type = _ref.type;
|
|
96
|
+
var from = tr.mapping.map(pos + start);
|
|
97
|
+
var to = tr.mapping.map(pos + end);
|
|
98
|
+
var $from = tr.doc.resolve(from);
|
|
99
|
+
var parent = $from.parent;
|
|
100
|
+
var index = $from.index();
|
|
101
|
+
var latex;
|
|
102
|
+
if (type === 'block') {
|
|
103
|
+
latex = match.slice(2, -2); // 移除 $$ 符号
|
|
104
|
+
} else {
|
|
105
|
+
latex = match.slice(1, -1); // 移除 $ 符号
|
|
106
|
+
}
|
|
107
|
+
allMathReplacements.push({
|
|
108
|
+
pos: from,
|
|
109
|
+
match: match,
|
|
110
|
+
type: type,
|
|
111
|
+
latex: latex,
|
|
112
|
+
parent: parent,
|
|
113
|
+
index: index
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
// 按位置从后往前排序,避免位置偏移问题
|
|
119
|
+
allMathReplacements.sort(function (a, b) {
|
|
120
|
+
return b.pos - a.pos;
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
// 第二遍:执行替换
|
|
124
|
+
allMathReplacements.forEach(function (_ref2) {
|
|
125
|
+
var pos = _ref2.pos,
|
|
126
|
+
match = _ref2.match,
|
|
127
|
+
type = _ref2.type,
|
|
128
|
+
latex = _ref2.latex,
|
|
129
|
+
parent = _ref2.parent,
|
|
130
|
+
index = _ref2.index;
|
|
131
|
+
var mathNode;
|
|
132
|
+
if (type === 'block') {
|
|
133
|
+
// 块级数学公式
|
|
134
|
+
mathNode = blockMathNode;
|
|
135
|
+
} else {
|
|
136
|
+
// 行内数学公式
|
|
137
|
+
mathNode = inlineMathNode;
|
|
138
|
+
}
|
|
139
|
+
if (type === 'block') {
|
|
140
|
+
// 对于块级数学公式,需要特殊处理
|
|
141
|
+
// 1. 先删除原始文本
|
|
142
|
+
var endPos = pos + match.length;
|
|
143
|
+
tr.delete(pos, endPos);
|
|
144
|
+
|
|
145
|
+
// 2. 在删除位置插入块级数学节点
|
|
146
|
+
tr.insert(pos, mathNode.create({
|
|
147
|
+
latex: latex
|
|
148
|
+
}));
|
|
149
|
+
} else {
|
|
150
|
+
// 对于行内数学公式,在段落内部替换
|
|
151
|
+
if (!parent.canReplaceWith(index, index + 1, mathNode)) {
|
|
152
|
+
console.warn("\u65E0\u6CD5\u66FF\u6362\u884C\u5185\u6570\u5B66\u516C\u5F0F:", match);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
var _endPos = pos + match.length;
|
|
156
|
+
tr.replaceWith(pos, _endPos, mathNode.create({
|
|
157
|
+
latex: latex
|
|
158
|
+
}));
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
// don't add to history
|
|
163
|
+
tr.setMeta('addToHistory', false);
|
|
164
|
+
return tr;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Migrates existing math strings in the editor document to math nodes.
|
|
169
|
+
* This function creates and dispatches a transaction that converts LaTeX math syntax
|
|
170
|
+
* into proper math nodes. It handles both inline math (single dollar signs) and
|
|
171
|
+
* block math (double dollar signs). The migration happens immediately and is not
|
|
172
|
+
* added to the editor's history.
|
|
173
|
+
*
|
|
174
|
+
* Note: Math formulas inside <pre> and <code> tags are ignored to preserve code formatting.
|
|
175
|
+
*
|
|
176
|
+
* @param editor - The editor instance to perform the migration on
|
|
177
|
+
*
|
|
178
|
+
* @example
|
|
179
|
+
* ```typescript
|
|
180
|
+
* const editor = new Editor({
|
|
181
|
+
* extensions: [Mathematics],
|
|
182
|
+
* content: 'This is inline math: $x^2 + y^2 = z^2$ and block math: $$\frac{a}{b}$$'
|
|
183
|
+
* })
|
|
184
|
+
*
|
|
185
|
+
* // Math strings will be automatically migrated to math nodes
|
|
186
|
+
* migrateMathStrings(editor)
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
export function migrateMathStrings(editor) {
|
|
190
|
+
var tr = createMathMigrateTransaction(editor, editor.state.tr);
|
|
191
|
+
editor.view.dispatch(tr);
|
|
192
|
+
}
|