@seafile/seafile-editor 1.0.0 → 1.0.2
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/constants/event-types.js +16 -0
- package/dist/constants/hot-keys.js +43 -0
- package/dist/containers/article-info/index.js +57 -0
- package/dist/containers/custom/get-event-transfer.js +38 -0
- package/dist/containers/custom/set-event-transfer.js +36 -0
- package/dist/containers/hotkeys-helper/classify-hotkeys.js +39 -0
- package/dist/containers/hotkeys-helper/index.js +52 -0
- package/dist/containers/loading/index.js +33 -0
- package/dist/containers/outline/index.js +80 -0
- package/dist/containers/outline/outline-item.js +30 -0
- package/dist/editors/plain-markdown-editor/code-mirror.js +84 -0
- package/dist/editors/plain-markdown-editor/index.js +149 -0
- package/dist/editors/simple-slate-editor /index.js +90 -0
- package/dist/editors/simple-slate-editor /with-props-editor.js +18 -0
- package/dist/editors/slate-editor/editor-help/index.js +53 -0
- package/dist/editors/slate-editor/index.js +102 -0
- package/dist/editors/slate-editor/with-props-editor.js +18 -0
- package/dist/editors/slate-viewer/index.js +42 -0
- package/dist/extension/commons/element-popover/index.js +64 -0
- package/dist/extension/commons/index.js +26 -0
- package/dist/extension/commons/menu/index.js +21 -0
- package/dist/extension/commons/menu/menu-drop-down.js +104 -0
- package/dist/extension/commons/menu/menu-group.js +18 -0
- package/dist/extension/commons/menu/menu-item.js +54 -0
- package/dist/extension/commons/tooltip/index.js +26 -0
- package/dist/extension/constants/element-types.js +29 -0
- package/dist/extension/constants/index.js +46 -0
- package/dist/extension/constants/keyboard.js +33 -0
- package/dist/extension/constants/menus-config.js +121 -0
- package/dist/extension/core/index.js +38 -0
- package/dist/extension/core/queries/index.js +479 -0
- package/dist/extension/core/transforms/focus-editor.js +17 -0
- package/dist/extension/core/transforms/index.js +49 -0
- package/dist/extension/core/transforms/move-children.js +35 -0
- package/dist/extension/core/transforms/remove-node-children.js +31 -0
- package/dist/extension/core/transforms/replace-node-children.js +22 -0
- package/dist/extension/core/utils/index.js +103 -0
- package/dist/extension/editor.js +19 -0
- package/dist/extension/index.js +48 -0
- package/dist/extension/plugins/blockquote/helpers.js +77 -0
- package/dist/extension/plugins/blockquote/index.js +18 -0
- package/dist/extension/plugins/blockquote/menu/index.js +33 -0
- package/dist/extension/plugins/blockquote/plugin.js +70 -0
- package/dist/extension/plugins/blockquote/render-elem.js +18 -0
- package/dist/extension/plugins/check-list/helper.js +35 -0
- package/dist/extension/plugins/check-list/index.js +19 -0
- package/dist/extension/plugins/check-list/menu/index.js +40 -0
- package/dist/extension/plugins/check-list/plugin.js +50 -0
- package/dist/extension/plugins/check-list/render-elem.js +44 -0
- package/dist/extension/plugins/clear-format/helpers.js +65 -0
- package/dist/extension/plugins/clear-format/menu/index.js +34 -0
- package/dist/extension/plugins/code-block/helpers.js +175 -0
- package/dist/extension/plugins/code-block/index.js +20 -0
- package/dist/extension/plugins/code-block/menu/index.js +37 -0
- package/dist/extension/plugins/code-block/plugin.js +270 -0
- package/dist/extension/plugins/code-block/render-elem/constant.js +12 -0
- package/dist/extension/plugins/code-block/render-elem/index.js +62 -0
- package/dist/extension/plugins/code-block/render-elem/language-selector.js +39 -0
- package/dist/extension/plugins/formula/helper.js +74 -0
- package/dist/extension/plugins/formula/index.js +19 -0
- package/dist/extension/plugins/formula/menu/formula-modal.js +97 -0
- package/dist/extension/plugins/formula/menu/index.js +71 -0
- package/dist/extension/plugins/formula/plugin.js +18 -0
- package/dist/extension/plugins/formula/render-elem.js +48 -0
- package/dist/extension/plugins/header/helper.js +57 -0
- package/dist/extension/plugins/header/index.js +19 -0
- package/dist/extension/plugins/header/menu/index.js +110 -0
- package/dist/extension/plugins/header/plugin.js +146 -0
- package/dist/extension/plugins/header/render-elem.js +34 -0
- package/dist/extension/plugins/image/helper.js +62 -0
- package/dist/extension/plugins/image/index.js +19 -0
- package/dist/extension/plugins/image/menu/image-menu-dialog.js +79 -0
- package/dist/extension/plugins/image/menu/image-menu-popover.js +96 -0
- package/dist/extension/plugins/image/menu/index.js +58 -0
- package/dist/extension/plugins/image/plugin.js +24 -0
- package/dist/extension/plugins/image/render-element/image-previewer.js +78 -0
- package/dist/extension/plugins/image/render-element/index.js +122 -0
- package/dist/extension/plugins/index.js +95 -0
- package/dist/extension/plugins/link/helper.js +235 -0
- package/dist/extension/plugins/link/index.js +19 -0
- package/dist/extension/plugins/link/menu/index.js +98 -0
- package/dist/extension/plugins/link/menu/link-modal.js +163 -0
- package/dist/extension/plugins/link/plugin.js +104 -0
- package/dist/extension/plugins/link/render-elem/index.js +83 -0
- package/dist/extension/plugins/link/render-elem/link-popover.js +77 -0
- package/dist/extension/plugins/list/constant.js +8 -0
- package/dist/extension/plugins/list/helpers.js +78 -0
- package/dist/extension/plugins/list/index.js +19 -0
- package/dist/extension/plugins/list/menu/index.js +46 -0
- package/dist/extension/plugins/list/plugin/index.js +48 -0
- package/dist/extension/plugins/list/plugin/insert-break-list.js +28 -0
- package/dist/extension/plugins/list/plugin/insert-fragment-list.js +190 -0
- package/dist/extension/plugins/list/plugin/normalize-list.js +81 -0
- package/dist/extension/plugins/list/plugin/on-tab-handle.js +52 -0
- package/dist/extension/plugins/list/queries/index.js +51 -0
- package/dist/extension/plugins/list/render-elem/index.js +38 -0
- package/dist/extension/plugins/list/transforms/index.js +75 -0
- package/dist/extension/plugins/list/transforms/insert-list-item.js +100 -0
- package/dist/extension/plugins/list/transforms/move-list-item-down.js +51 -0
- package/dist/extension/plugins/list/transforms/move-list-item-up.js +124 -0
- package/dist/extension/plugins/list/transforms/move-list-items-to-list.js +62 -0
- package/dist/extension/plugins/list/transforms/move-list-items.js +73 -0
- package/dist/extension/plugins/list/transforms/normalize-list-item.js +125 -0
- package/dist/extension/plugins/list/transforms/normalize-nested-list.js +40 -0
- package/dist/extension/plugins/list/transforms/remove-first-list-item.js +24 -0
- package/dist/extension/plugins/list/transforms/transforms-to-list.js +148 -0
- package/dist/extension/plugins/list/transforms/unwrap-list.js +50 -0
- package/dist/extension/plugins/node-id/constants.js +24 -0
- package/dist/extension/plugins/node-id/helpers.js +69 -0
- package/dist/extension/plugins/node-id/index.js +12 -0
- package/dist/extension/plugins/node-id/with-node-id.js +39 -0
- package/dist/extension/plugins/paragraph/helper.js +16 -0
- package/dist/extension/plugins/paragraph/index.js +17 -0
- package/dist/extension/plugins/paragraph/plugin.js +47 -0
- package/dist/extension/plugins/paragraph/render-elem.js +18 -0
- package/dist/extension/plugins/table/constant.js +9 -0
- package/dist/extension/plugins/table/helper.js +232 -0
- package/dist/extension/plugins/table/index.js +21 -0
- package/dist/extension/plugins/table/menu/index.js +64 -0
- package/dist/extension/plugins/table/menu/table-operator.js +98 -0
- package/dist/extension/plugins/table/menu/table-size-selector.js +100 -0
- package/dist/extension/plugins/table/model.js +95 -0
- package/dist/extension/plugins/table/plugin.js +173 -0
- package/dist/extension/plugins/table/render-elem/context-menu.js +93 -0
- package/dist/extension/plugins/table/render-elem/index.js +189 -0
- package/dist/extension/plugins/table/table-operations.js +187 -0
- package/dist/extension/plugins/text-style/helpers.js +44 -0
- package/dist/extension/plugins/text-style/index.js +17 -0
- package/dist/extension/plugins/text-style/menu/index.js +34 -0
- package/dist/extension/plugins/text-style/plugin.js +36 -0
- package/dist/extension/plugins/text-style/render-elem.js +52 -0
- package/dist/extension/render/render-element.js +113 -0
- package/dist/extension/render/render-leaf.js +21 -0
- package/dist/extension/toolbar/header-toolbar/index.js +113 -0
- package/dist/extension/toolbar/index.js +13 -0
- package/dist/extension/toolbar/user-help/shortcut-dialog.js +141 -0
- package/dist/hooks/use-mathjax.js +51 -0
- package/dist/hooks/use-scroll-context.js +17 -0
- package/dist/hooks/use-selection-update.js +25 -0
- package/dist/index.js +80 -0
- package/dist/pages/markdown-editor.js +65 -0
- package/dist/pages/markdown-view.js +49 -0
- package/dist/pages/rich-markdown-editor.js +111 -0
- package/dist/pages/simple-editor.js +63 -0
- package/dist/slate-convert/html-to-slate/constants.js +40 -0
- package/dist/slate-convert/html-to-slate/helper.js +60 -0
- package/dist/slate-convert/html-to-slate/index.js +138 -0
- package/dist/slate-convert/html-to-slate/rules/blockquote.js +22 -0
- package/dist/slate-convert/html-to-slate/rules/check-list.js +25 -0
- package/dist/slate-convert/html-to-slate/rules/code-block.js +93 -0
- package/dist/slate-convert/html-to-slate/rules/header.js +22 -0
- package/dist/slate-convert/html-to-slate/rules/image.js +27 -0
- package/dist/slate-convert/html-to-slate/rules/index.js +18 -0
- package/dist/slate-convert/html-to-slate/rules/link.js +27 -0
- package/dist/slate-convert/html-to-slate/rules/list.js +55 -0
- package/dist/slate-convert/html-to-slate/rules/paragraph.js +22 -0
- package/dist/slate-convert/html-to-slate/rules/table.js +39 -0
- package/dist/slate-convert/html-to-slate/rules/text.js +61 -0
- package/dist/slate-convert/index.js +34 -0
- package/dist/slate-convert/md-to-html/index.js +53 -0
- package/dist/slate-convert/md-to-html/sanitize-schema.js +24 -0
- package/dist/slate-convert/md-to-slate/index.js +44 -0
- package/dist/slate-convert/md-to-slate/transform.js +326 -0
- package/dist/slate-convert/slate-to-md/index.js +43 -0
- package/dist/slate-convert/slate-to-md/transform.js +269 -0
- package/dist/utils/common.js +26 -0
- package/dist/utils/deserialize-html.js +260 -0
- package/dist/utils/dom-utils.js +51 -0
- package/dist/utils/event-bus.js +54 -0
- package/dist/utils/event-handler.js +40 -0
- package/dist/utils/object-utils.js +73 -0
- package/package.json +7 -2
- package/.babelrc +0 -5
- package/.eslintignore +0 -19
- package/.eslintrc.json +0 -52
- package/.github/workflows/nodejs.yml +0 -25
- package/.vscode/settings.json +0 -5
- package/config/config.common.js +0 -157
- package/config/config.dev.js +0 -53
- package/config/jest/cssTransform.js +0 -16
- package/config/jest/fileTransform.js +0 -40
- package/config/utils/theme.css.js +0 -103
- package/config.js +0 -61
- package/dev-server.js +0 -145
- package/jest.config.js +0 -16
- package/scripts/ejs.js +0 -16
- package/site/_i18n/index.js +0 -35
- package/site/api/index.js +0 -212
- package/site/app.js +0 -21
- package/site/assets/css/app.css +0 -47
- package/site/assets/css/seafile-editor.css +0 -33
- package/site/commons/loading/index.js +0 -14
- package/site/commons/switch/index.css +0 -14
- package/site/commons/switch/index.js +0 -37
- package/site/commons/toast/alert.js +0 -106
- package/site/commons/toast/index.js +0 -5
- package/site/commons/toast/toast.js +0 -195
- package/site/commons/toast/toastManager.js +0 -138
- package/site/commons/toast/toaster.js +0 -64
- package/site/index.html +0 -23
- package/site/index.js +0 -21
- package/site/pages/home.js +0 -21
- package/site/pages/plain-markdown-view.js +0 -6
- package/site/pages/rich-seafile-editor.js +0 -72
- package/site/pages/seafile-editor.js +0 -39
- package/site/pages/seafile-viewer.js +0 -45
- package/site/pages/simple-editor.js +0 -44
- package/site/pages/wiki-viewer.js +0 -7
- package/site/setting.js +0 -36
- package/site/setting.local.dist.js +0 -23
- package/src/constants/event-types.js +0 -11
- package/src/constants/hot-keys.js +0 -47
- package/src/containers/article-info/index.js +0 -49
- package/src/containers/custom/get-event-transfer.js +0 -28
- package/src/containers/custom/set-event-transfer.js +0 -32
- package/src/containers/hotkeys-helper/classify-hotkeys.js +0 -30
- package/src/containers/hotkeys-helper/index.js +0 -43
- package/src/containers/loading/index.js +0 -14
- package/src/containers/loading/style.css +0 -49
- package/src/containers/outline/index.js +0 -75
- package/src/containers/outline/outline-item.js +0 -28
- package/src/editors/plain-markdown-editor/code-mirror.js +0 -73
- package/src/editors/plain-markdown-editor/index.js +0 -136
- package/src/editors/simple-slate-editor /index.js +0 -71
- package/src/editors/simple-slate-editor /with-props-editor.js +0 -15
- package/src/editors/slate-editor/editor-help/index.js +0 -46
- package/src/editors/slate-editor/index.js +0 -77
- package/src/editors/slate-editor/with-props-editor.js +0 -15
- package/src/editors/slate-viewer/index.js +0 -35
- package/src/extension/commons/element-popover/index.js +0 -52
- package/src/extension/commons/index.js +0 -10
- package/src/extension/commons/menu/index.js +0 -9
- package/src/extension/commons/menu/menu-drop-down.js +0 -110
- package/src/extension/commons/menu/menu-group.js +0 -20
- package/src/extension/commons/menu/menu-item.js +0 -60
- package/src/extension/commons/tooltip/index.js +0 -26
- package/src/extension/constants/element-types.js +0 -23
- package/src/extension/constants/index.js +0 -37
- package/src/extension/constants/keyboard.js +0 -29
- package/src/extension/constants/menus-config.js +0 -149
- package/src/extension/core/index.js +0 -3
- package/src/extension/core/queries/index.js +0 -410
- package/src/extension/core/transforms/focus-editor.js +0 -12
- package/src/extension/core/transforms/index.js +0 -4
- package/src/extension/core/transforms/move-children.js +0 -23
- package/src/extension/core/transforms/remove-node-children.js +0 -8
- package/src/extension/core/transforms/replace-node-children.js +0 -14
- package/src/extension/core/utils/index.js +0 -76
- package/src/extension/editor.js +0 -14
- package/src/extension/index.js +0 -15
- package/src/extension/plugins/blockquote/helpers.js +0 -65
- package/src/extension/plugins/blockquote/index.js +0 -13
- package/src/extension/plugins/blockquote/menu/index.js +0 -31
- package/src/extension/plugins/blockquote/plugin.js +0 -64
- package/src/extension/plugins/blockquote/render-elem.js +0 -9
- package/src/extension/plugins/check-list/helper.js +0 -34
- package/src/extension/plugins/check-list/index.js +0 -14
- package/src/extension/plugins/check-list/menu/index.js +0 -44
- package/src/extension/plugins/check-list/plugin.js +0 -46
- package/src/extension/plugins/check-list/render-elem.js +0 -23
- package/src/extension/plugins/clear-format/helpers.js +0 -48
- package/src/extension/plugins/clear-format/menu/index.js +0 -39
- package/src/extension/plugins/code-block/helpers.js +0 -107
- package/src/extension/plugins/code-block/index.js +0 -14
- package/src/extension/plugins/code-block/menu/index.js +0 -40
- package/src/extension/plugins/code-block/plugin.js +0 -210
- package/src/extension/plugins/code-block/render-elem/constant.js +0 -17
- package/src/extension/plugins/code-block/render-elem/index.js +0 -55
- package/src/extension/plugins/code-block/render-elem/language-selector.js +0 -38
- package/src/extension/plugins/formula/helper.js +0 -68
- package/src/extension/plugins/formula/index.js +0 -14
- package/src/extension/plugins/formula/menu/formula-modal.js +0 -73
- package/src/extension/plugins/formula/menu/index.js +0 -63
- package/src/extension/plugins/formula/plugin.js +0 -18
- package/src/extension/plugins/formula/render-elem.js +0 -40
- package/src/extension/plugins/header/helper.js +0 -47
- package/src/extension/plugins/header/index.js +0 -14
- package/src/extension/plugins/header/menu/index.js +0 -114
- package/src/extension/plugins/header/plugin.js +0 -134
- package/src/extension/plugins/header/render-elem.js +0 -31
- package/src/extension/plugins/image/helper.js +0 -50
- package/src/extension/plugins/image/index.js +0 -14
- package/src/extension/plugins/image/menu/image-menu-dialog.js +0 -68
- package/src/extension/plugins/image/menu/image-menu-popover.js +0 -76
- package/src/extension/plugins/image/menu/index.js +0 -61
- package/src/extension/plugins/image/plugin.js +0 -23
- package/src/extension/plugins/image/render-element/image-previewer.js +0 -71
- package/src/extension/plugins/image/render-element/index.js +0 -94
- package/src/extension/plugins/index.js +0 -47
- package/src/extension/plugins/link/helper.js +0 -161
- package/src/extension/plugins/link/index.js +0 -14
- package/src/extension/plugins/link/menu/index.js +0 -82
- package/src/extension/plugins/link/menu/link-modal.js +0 -135
- package/src/extension/plugins/link/plugin.js +0 -85
- package/src/extension/plugins/link/render-elem/index.js +0 -69
- package/src/extension/plugins/link/render-elem/link-popover.js +0 -79
- package/src/extension/plugins/list/constant.js +0 -3
- package/src/extension/plugins/list/helpers.js +0 -53
- package/src/extension/plugins/list/index.js +0 -14
- package/src/extension/plugins/list/menu/index.js +0 -48
- package/src/extension/plugins/list/plugin/index.js +0 -48
- package/src/extension/plugins/list/plugin/insert-break-list.js +0 -25
- package/src/extension/plugins/list/plugin/insert-fragment-list.js +0 -162
- package/src/extension/plugins/list/plugin/normalize-list.js +0 -64
- package/src/extension/plugins/list/plugin/on-tab-handle.js +0 -34
- package/src/extension/plugins/list/queries/index.js +0 -39
- package/src/extension/plugins/list/render-elem/index.js +0 -26
- package/src/extension/plugins/list/transforms/index.js +0 -23
- package/src/extension/plugins/list/transforms/insert-list-item.js +0 -65
- package/src/extension/plugins/list/transforms/move-list-item-down.js +0 -40
- package/src/extension/plugins/list/transforms/move-list-item-up.js +0 -105
- package/src/extension/plugins/list/transforms/move-list-items-to-list.js +0 -58
- package/src/extension/plugins/list/transforms/move-list-items.js +0 -76
- package/src/extension/plugins/list/transforms/normalize-list-item.js +0 -92
- package/src/extension/plugins/list/transforms/normalize-nested-list.js +0 -31
- package/src/extension/plugins/list/transforms/remove-first-list-item.js +0 -11
- package/src/extension/plugins/list/transforms/transforms-to-list.js +0 -91
- package/src/extension/plugins/list/transforms/unwrap-list.js +0 -44
- package/src/extension/plugins/node-id/constants.js +0 -18
- package/src/extension/plugins/node-id/helpers.js +0 -61
- package/src/extension/plugins/node-id/index.js +0 -7
- package/src/extension/plugins/node-id/with-node-id.js +0 -37
- package/src/extension/plugins/paragraph/helper.js +0 -9
- package/src/extension/plugins/paragraph/index.js +0 -12
- package/src/extension/plugins/paragraph/plugin.js +0 -40
- package/src/extension/plugins/paragraph/render-elem.js +0 -11
- package/src/extension/plugins/table/constant.js +0 -3
- package/src/extension/plugins/table/helper.js +0 -175
- package/src/extension/plugins/table/index.js +0 -15
- package/src/extension/plugins/table/menu/index.js +0 -69
- package/src/extension/plugins/table/menu/table-operator.js +0 -101
- package/src/extension/plugins/table/menu/table-size-selector.js +0 -71
- package/src/extension/plugins/table/model.js +0 -69
- package/src/extension/plugins/table/plugin.js +0 -159
- package/src/extension/plugins/table/render-elem/context-menu.js +0 -78
- package/src/extension/plugins/table/render-elem/index.js +0 -157
- package/src/extension/plugins/table/table-operations.js +0 -162
- package/src/extension/plugins/text-style/helpers.js +0 -38
- package/src/extension/plugins/text-style/index.js +0 -12
- package/src/extension/plugins/text-style/menu/index.js +0 -41
- package/src/extension/plugins/text-style/plugin.js +0 -37
- package/src/extension/plugins/text-style/render-elem.js +0 -45
- package/src/extension/render/render-element.js +0 -82
- package/src/extension/render/render-leaf.js +0 -16
- package/src/extension/toolbar/header-toolbar/index.js +0 -129
- package/src/extension/toolbar/index.js +0 -5
- package/src/extension/toolbar/user-help/shortcut-dialog.js +0 -144
- package/src/hooks/use-mathjax.js +0 -44
- package/src/hooks/use-scroll-context.js +0 -14
- package/src/hooks/use-selection-update.js +0 -14
- package/src/index.js +0 -22
- package/src/pages/markdown-editor.js +0 -53
- package/src/pages/markdown-view.js +0 -36
- package/src/pages/rich-markdown-editor.js +0 -95
- package/src/pages/simple-editor.js +0 -52
- package/src/slate-convert/html-to-slate/constants.js +0 -54
- package/src/slate-convert/html-to-slate/helper.js +0 -22
- package/src/slate-convert/html-to-slate/index.js +0 -144
- package/src/slate-convert/html-to-slate/rules/blockquote.js +0 -16
- package/src/slate-convert/html-to-slate/rules/check-list.js +0 -22
- package/src/slate-convert/html-to-slate/rules/code-block.js +0 -91
- package/src/slate-convert/html-to-slate/rules/header.js +0 -18
- package/src/slate-convert/html-to-slate/rules/image.js +0 -18
- package/src/slate-convert/html-to-slate/rules/index.js +0 -23
- package/src/slate-convert/html-to-slate/rules/link.js +0 -24
- package/src/slate-convert/html-to-slate/rules/list.js +0 -52
- package/src/slate-convert/html-to-slate/rules/paragraph.js +0 -16
- package/src/slate-convert/html-to-slate/rules/table.js +0 -37
- package/src/slate-convert/html-to-slate/rules/text.js +0 -63
- package/src/slate-convert/index.js +0 -11
- package/src/slate-convert/md-to-html/index.js +0 -44
- package/src/slate-convert/md-to-html/sanitize-schema.js +0 -41
- package/src/slate-convert/md-to-slate/index.js +0 -42
- package/src/slate-convert/md-to-slate/transform.js +0 -336
- package/src/slate-convert/slate-to-md/index.js +0 -44
- package/src/slate-convert/slate-to-md/transform.js +0 -248
- package/src/utils/common.js +0 -30
- package/src/utils/deserialize-html.js +0 -174
- package/src/utils/dom-utils.js +0 -45
- package/src/utils/event-bus.js +0 -37
- package/src/utils/event-handler.js +0 -36
- package/src/utils/object-utils.js +0 -51
- package/tests/core/constants/index.js +0 -54
- package/tests/core/index.js +0 -11
- package/tests/core/jsx/index.js +0 -9
- package/tests/core/stub-editor/index.js +0 -26
- package/tests/core/utils.js +0 -58
- package/tests/extension/plugins/list/insert-block.test.js +0 -40
- package/tests/extension/plugins/list/insert-fragment-list.test.js +0 -392
- package/tests/extension/plugins/list/toggle-list.test.js +0 -160
- package/tests/extension/plugins/text/text.test.js +0 -29
- package/tests/extension/plugins/text-style/toggle-text-style.test.js +0 -148
- package/tests/slate-convert/html-to-slate/blockquote.test.js +0 -107
- package/tests/slate-convert/html-to-slate/code-block.test.js +0 -32
- package/tests/slate-convert/html-to-slate/header.test.js +0 -56
- package/tests/slate-convert/html-to-slate/link.test.js +0 -77
- package/tests/slate-convert/html-to-slate/list.test.js +0 -190
- package/tests/slate-convert/html-to-slate/paragraph.test.js +0 -40
- package/tests/slate-convert/html-to-slate/text.test.js +0 -131
- package/tests/slate-convert/md-to-html/blockquote.test.js +0 -110
- package/tests/slate-convert/md-to-html/check-list.test.js +0 -19
- package/tests/slate-convert/md-to-html/code-block.test.js +0 -19
- package/tests/slate-convert/md-to-html/header.test.js +0 -20
- package/tests/slate-convert/md-to-html/image.test.js +0 -17
- package/tests/slate-convert/md-to-html/image_reference.test.js +0 -17
- package/tests/slate-convert/md-to-html/link.test.js +0 -15
- package/tests/slate-convert/md-to-html/link_reference.test.js +0 -15
- package/tests/slate-convert/md-to-html/list-ordered.test.js +0 -22
- package/tests/slate-convert/md-to-html/list-unordered.test.js +0 -22
- package/tests/slate-convert/md-to-html/paragraph.test.js +0 -15
- package/tests/slate-convert/md-to-html/table.test.js +0 -29
- package/tests/slate-convert/md-to-html/text_base.test.js +0 -14
- package/tests/slate-convert/md-to-html/text_bold.test.js +0 -14
- package/tests/slate-convert/md-to-html/text_bold_italic.test.js +0 -15
- package/tests/slate-convert/md-to-html/text_code.test.js +0 -14
- package/tests/slate-convert/md-to-html/text_code_bold.test.js +0 -14
- package/tests/slate-convert/md-to-html/text_code_bold_italic.test.js +0 -14
- package/tests/slate-convert/md-to-html/text_code_italic.test.js +0 -14
- package/tests/slate-convert/md-to-html/text_italic.test.js +0 -14
- package/tests/slate-convert/md-to-slate/blockquote.test.js +0 -200
- package/tests/slate-convert/md-to-slate/check-list.test.js +0 -34
- package/tests/slate-convert/md-to-slate/code-block.test.js +0 -32
- package/tests/slate-convert/md-to-slate/header.test.js +0 -49
- package/tests/slate-convert/md-to-slate/image.test.js +0 -31
- package/tests/slate-convert/md-to-slate/link.test.js +0 -30
- package/tests/slate-convert/md-to-slate/list-ordered.test.js +0 -42
- package/tests/slate-convert/md-to-slate/list-unordered.test.js +0 -42
- package/tests/slate-convert/md-to-slate/paragraph.test.js +0 -19
- package/tests/slate-convert/md-to-slate/table.test.js +0 -34
- package/tests/slate-convert/md-to-slate/text_base.test.js +0 -19
- package/tests/slate-convert/md-to-slate/text_bold.test.js +0 -22
- package/tests/slate-convert/md-to-slate/text_bold_italic.test.js +0 -23
- package/tests/slate-convert/md-to-slate/text_code.test.js +0 -22
- package/tests/slate-convert/md-to-slate/text_code_bold.test.js +0 -23
- package/tests/slate-convert/md-to-slate/text_code_bold_italic.test.js +0 -24
- package/tests/slate-convert/md-to-slate/text_code_italic.test.js +0 -23
- package/tests/slate-convert/md-to-slate/text_italic.test.js +0 -22
- package/tests/slate-convert/slate-to-md/blockquote.test.js +0 -416
- package/tests/slate-convert/slate-to-md/check-list.test.js +0 -96
- package/tests/slate-convert/slate-to-md/code-block.test.js +0 -35
- package/tests/slate-convert/slate-to-md/formula.test.js +0 -26
- package/tests/slate-convert/slate-to-md/header.test.js +0 -109
- package/tests/slate-convert/slate-to-md/image.test.js +0 -98
- package/tests/slate-convert/slate-to-md/link.test.js +0 -52
- package/tests/slate-convert/slate-to-md/list-ordered.test.js +0 -87
- package/tests/slate-convert/slate-to-md/list-unordered.test.js +0 -81
- package/tests/slate-convert/slate-to-md/paragraph.test.js +0 -28
- package/tests/slate-convert/slate-to-md/table.test.js +0 -56
- package/tests/slate-convert/slate-to-md/text_base.test.js +0 -28
- package/tests/slate-convert/slate-to-md/text_bold.test.js +0 -36
- package/tests/slate-convert/slate-to-md/text_bold_italic.test.js +0 -42
- package/tests/slate-convert/slate-to-md/text_code.test.js +0 -31
- package/tests/slate-convert/slate-to-md/text_code_bold.test.js +0 -37
- package/tests/slate-convert/slate-to-md/text_code_bold_italic.test.js +0 -43
- package/tests/slate-convert/slate-to-md/text_code_italic.test.js +0 -37
- package/tests/slate-convert/slate-to-md/text_italic.test.js +0 -36
- /package/{src → dist}/assets/css/slate-editor.css +0 -0
- /package/{src → dist}/containers/article-info/style.css +0 -0
- /package/{src → dist}/containers/hotkeys-helper/style.css +0 -0
- /package/{site/commons → dist/containers}/loading/style.css +0 -0
- /package/{src → dist}/containers/outline/style.css +0 -0
- /package/{src → dist}/editors/plain-markdown-editor/code-mirror.css +0 -0
- /package/{src → dist}/editors/plain-markdown-editor/style.css +0 -0
- /package/{src → dist}/editors/slate-editor/editor-help/style.css +0 -0
- /package/{src → dist}/editors/slate-viewer/style.css +0 -0
- /package/{src → dist}/extension/commons/menu/menu.css +0 -0
- /package/{src → dist}/extension/commons/tooltip/index.css +0 -0
- /package/{src → dist}/extension/plugins/code-block/render-elem/style.css +0 -0
- /package/{src → dist}/extension/plugins/formula/formula.css +0 -0
- /package/{src → dist}/extension/plugins/header/menu/style.css +0 -0
- /package/{src → dist}/extension/plugins/image/menu/style.css +0 -0
- /package/{src → dist}/extension/plugins/image/render-element/style.css +0 -0
- /package/{src → dist}/extension/plugins/link/render-elem/style.css +0 -0
- /package/{src → dist}/extension/plugins/list/render-elem/style.css +0 -0
- /package/{src → dist}/extension/plugins/table/menu/style.css +0 -0
- /package/{src → dist}/extension/plugins/table/render-elem/style.css +0 -0
- /package/{src → dist}/extension/toolbar/header-toolbar/style.css +0 -0
- /package/{src → dist}/extension/toolbar/user-help/style.css +0 -0
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.transformUnorderedList = exports.transformTableRow = exports.transformTableCell = exports.transformTable = exports.transformParagraph = exports.transformOrderedList = exports.transformMath = exports.transformListItem = exports.transformListContent = exports.transformList = exports.transformHtml = exports.transformHr = exports.transformHeader = exports.transformCodeLine = exports.transformCodeBlock = exports.transformCheckListItem = exports.transformCheckList = exports.transformBlockquote = exports.formatMdToSlate = void 0;
|
|
8
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
9
|
+
var _slugid = _interopRequireDefault(require("slugid"));
|
|
10
|
+
var _core = require("../../extension/core");
|
|
11
|
+
var _elementTypes = require("../../extension/constants/element-types");
|
|
12
|
+
var INLINE_KEY_MAP = {
|
|
13
|
+
strong: 'bold',
|
|
14
|
+
emphasis: 'italic'
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
// <strong><em>aa<em>bb<em></strong>
|
|
18
|
+
var applyMarkForInlineItem = function applyMarkForInlineItem(result, item) {
|
|
19
|
+
var textNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
20
|
+
var type = item.type,
|
|
21
|
+
children = item.children,
|
|
22
|
+
value = item.value;
|
|
23
|
+
if (type === _elementTypes.LINK) {
|
|
24
|
+
var child = children.length === 0 ? {
|
|
25
|
+
type: 'text',
|
|
26
|
+
value: ''
|
|
27
|
+
} : children[0];
|
|
28
|
+
var linkChildren = [{
|
|
29
|
+
id: _slugid.default.nice(),
|
|
30
|
+
text: child.value
|
|
31
|
+
}];
|
|
32
|
+
var link = {
|
|
33
|
+
id: _slugid.default.nice(),
|
|
34
|
+
type: _elementTypes.LINK,
|
|
35
|
+
url: item.url,
|
|
36
|
+
title: item.title,
|
|
37
|
+
children: linkChildren
|
|
38
|
+
};
|
|
39
|
+
result.push([(0, _core.generateDefaultText)(), link, (0, _core.generateDefaultText)()]);
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
if (type === _elementTypes.IMAGE) {
|
|
43
|
+
var data = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
44
|
+
src: item.url
|
|
45
|
+
}, item.title && {
|
|
46
|
+
title: item.title
|
|
47
|
+
}), item.alt && {
|
|
48
|
+
alt: item.alt
|
|
49
|
+
}), item.width && {
|
|
50
|
+
width: item.width
|
|
51
|
+
}), item.height && {
|
|
52
|
+
height: item.height
|
|
53
|
+
});
|
|
54
|
+
var image = {
|
|
55
|
+
id: _slugid.default.nice(),
|
|
56
|
+
data: data,
|
|
57
|
+
type: _elementTypes.IMAGE,
|
|
58
|
+
children: [(0, _core.generateDefaultText)()]
|
|
59
|
+
};
|
|
60
|
+
result.push([(0, _core.generateDefaultText)(), image, (0, _core.generateDefaultText)()]);
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// Handle special images
|
|
65
|
+
if (type === 'html') {
|
|
66
|
+
var nodes = transformHtml(item);
|
|
67
|
+
result.push(nodes);
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
if (type === 'text') {
|
|
71
|
+
textNode['text'] = value || '';
|
|
72
|
+
result.push(textNode);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (type === 'inlineCode') {
|
|
76
|
+
textNode['code'] = true;
|
|
77
|
+
textNode['text'] = value || '';
|
|
78
|
+
result.push(textNode);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
var attr_key = INLINE_KEY_MAP[type];
|
|
82
|
+
if (!Array.isArray(children) || children.length === 0 || !attr_key) {
|
|
83
|
+
textNode['text'] = value || '';
|
|
84
|
+
result.push(textNode);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
textNode[attr_key] = true;
|
|
88
|
+
children.forEach(function (item) {
|
|
89
|
+
applyMarkForInlineItem(result, item, textNode);
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
var transformNodeWithInlineChildren = function transformNodeWithInlineChildren(node) {
|
|
93
|
+
var children = node.children;
|
|
94
|
+
var defaultChildren = [(0, _core.generateDefaultText)()];
|
|
95
|
+
if (!children || !Array.isArray(children) || children.length === 0) {
|
|
96
|
+
return defaultChildren;
|
|
97
|
+
}
|
|
98
|
+
var result = [];
|
|
99
|
+
children.forEach(function (item) {
|
|
100
|
+
return applyMarkForInlineItem(result, item);
|
|
101
|
+
});
|
|
102
|
+
return result.flat();
|
|
103
|
+
};
|
|
104
|
+
var transformHeader = exports.transformHeader = function transformHeader(node) {
|
|
105
|
+
var depth = node.depth;
|
|
106
|
+
var type = "".concat(_elementTypes.HEADER).concat(depth);
|
|
107
|
+
return {
|
|
108
|
+
id: _slugid.default.nice(),
|
|
109
|
+
type: type,
|
|
110
|
+
children: transformNodeWithInlineChildren(node)
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
var transformParagraph = exports.transformParagraph = function transformParagraph(node) {
|
|
114
|
+
return {
|
|
115
|
+
id: _slugid.default.nice(),
|
|
116
|
+
type: _elementTypes.PARAGRAPH,
|
|
117
|
+
children: transformNodeWithInlineChildren(node)
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
var transformBlockquote = exports.transformBlockquote = function transformBlockquote(node) {
|
|
121
|
+
var children = node.children;
|
|
122
|
+
return {
|
|
123
|
+
id: _slugid.default.nice(),
|
|
124
|
+
type: _elementTypes.BLOCKQUOTE,
|
|
125
|
+
children: children.map(function (child) {
|
|
126
|
+
var handler = elementHandlers[child.type];
|
|
127
|
+
return handler(child);
|
|
128
|
+
}).flat() // flat
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
var transformListContent = exports.transformListContent = function transformListContent(node) {
|
|
133
|
+
return {
|
|
134
|
+
id: _slugid.default.nice(),
|
|
135
|
+
type: _elementTypes.PARAGRAPH,
|
|
136
|
+
children: transformNodeWithInlineChildren(node)
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
var transformListItem = exports.transformListItem = function transformListItem(node) {
|
|
140
|
+
var children = node.children;
|
|
141
|
+
return {
|
|
142
|
+
id: _slugid.default.nice(),
|
|
143
|
+
type: _elementTypes.LIST_ITEM,
|
|
144
|
+
// eslint-disable-next-line array-callback-return
|
|
145
|
+
children: children.map(function (child) {
|
|
146
|
+
if (child.type === _elementTypes.PARAGRAPH) {
|
|
147
|
+
return transformListContent(child);
|
|
148
|
+
} else {
|
|
149
|
+
return transformList(child);
|
|
150
|
+
}
|
|
151
|
+
})
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
var transformOrderedList = exports.transformOrderedList = function transformOrderedList(node) {
|
|
155
|
+
var children = node.children;
|
|
156
|
+
return {
|
|
157
|
+
id: _slugid.default.nice(),
|
|
158
|
+
type: _elementTypes.ORDERED_LIST,
|
|
159
|
+
children: children.map(function (child) {
|
|
160
|
+
return transformListItem(child);
|
|
161
|
+
})
|
|
162
|
+
};
|
|
163
|
+
};
|
|
164
|
+
var transformUnorderedList = exports.transformUnorderedList = function transformUnorderedList(node) {
|
|
165
|
+
var children = node.children;
|
|
166
|
+
return {
|
|
167
|
+
id: _slugid.default.nice(),
|
|
168
|
+
type: _elementTypes.UNORDERED_LIST,
|
|
169
|
+
children: children.map(function (child) {
|
|
170
|
+
return transformListItem(child);
|
|
171
|
+
})
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
var transformCheckListItem = exports.transformCheckListItem = function transformCheckListItem(node) {
|
|
175
|
+
var children = node.children,
|
|
176
|
+
checked = node.checked;
|
|
177
|
+
return {
|
|
178
|
+
id: _slugid.default.nice(),
|
|
179
|
+
type: _elementTypes.CHECK_LIST_ITEM,
|
|
180
|
+
checked: checked,
|
|
181
|
+
children: children.map(function (child) {
|
|
182
|
+
return transformNodeWithInlineChildren(child);
|
|
183
|
+
}).flat()
|
|
184
|
+
};
|
|
185
|
+
};
|
|
186
|
+
var transformCheckList = exports.transformCheckList = function transformCheckList(node) {
|
|
187
|
+
var children = node.children;
|
|
188
|
+
return children.map(function (child) {
|
|
189
|
+
return transformCheckListItem(child);
|
|
190
|
+
});
|
|
191
|
+
};
|
|
192
|
+
var transformList = exports.transformList = function transformList(node) {
|
|
193
|
+
var ordered = node.ordered,
|
|
194
|
+
children = node.children;
|
|
195
|
+
var firstChild = children[0];
|
|
196
|
+
if (ordered === true) {
|
|
197
|
+
return transformOrderedList(node);
|
|
198
|
+
}
|
|
199
|
+
if (ordered === false && firstChild.checked === null) {
|
|
200
|
+
return transformUnorderedList(node);
|
|
201
|
+
}
|
|
202
|
+
return transformCheckList(node);
|
|
203
|
+
};
|
|
204
|
+
var transformTableCell = exports.transformTableCell = function transformTableCell(cell, align) {
|
|
205
|
+
return {
|
|
206
|
+
id: _slugid.default.nice(),
|
|
207
|
+
type: _elementTypes.TABLE_CELL,
|
|
208
|
+
align: align || null,
|
|
209
|
+
children: transformNodeWithInlineChildren(cell)
|
|
210
|
+
};
|
|
211
|
+
};
|
|
212
|
+
var transformTableRow = exports.transformTableRow = function transformTableRow(row, align) {
|
|
213
|
+
var cells = row.children;
|
|
214
|
+
return {
|
|
215
|
+
id: _slugid.default.nice(),
|
|
216
|
+
type: _elementTypes.TABLE_ROW,
|
|
217
|
+
children: cells.map(function (cell) {
|
|
218
|
+
return transformTableCell(cell, align);
|
|
219
|
+
})
|
|
220
|
+
};
|
|
221
|
+
};
|
|
222
|
+
var transformTable = exports.transformTable = function transformTable(node) {
|
|
223
|
+
var rows = node.children,
|
|
224
|
+
_node$align = node.align,
|
|
225
|
+
align = _node$align === void 0 ? [] : _node$align;
|
|
226
|
+
return {
|
|
227
|
+
id: _slugid.default.nice(),
|
|
228
|
+
type: _elementTypes.TABLE,
|
|
229
|
+
children: rows.map(function (row, index) {
|
|
230
|
+
return transformTableRow(row, align[index]);
|
|
231
|
+
})
|
|
232
|
+
};
|
|
233
|
+
};
|
|
234
|
+
var transformCodeLine = exports.transformCodeLine = function transformCodeLine(text) {
|
|
235
|
+
return {
|
|
236
|
+
id: _slugid.default.nice(),
|
|
237
|
+
type: _elementTypes.CODE_LINE,
|
|
238
|
+
children: [{
|
|
239
|
+
id: _slugid.default.nice(),
|
|
240
|
+
text: text
|
|
241
|
+
}]
|
|
242
|
+
};
|
|
243
|
+
};
|
|
244
|
+
var transformCodeBlock = exports.transformCodeBlock = function transformCodeBlock(node) {
|
|
245
|
+
var lang = node.lang,
|
|
246
|
+
value = node.value;
|
|
247
|
+
var children = value.split('\n');
|
|
248
|
+
return {
|
|
249
|
+
id: _slugid.default.nice(),
|
|
250
|
+
type: _elementTypes.CODE_BLOCK,
|
|
251
|
+
lang: lang,
|
|
252
|
+
children: children.map(function (text) {
|
|
253
|
+
return transformCodeLine(text);
|
|
254
|
+
})
|
|
255
|
+
};
|
|
256
|
+
};
|
|
257
|
+
var transformHr = exports.transformHr = function transformHr(node) {
|
|
258
|
+
return {
|
|
259
|
+
id: _slugid.default.nice(),
|
|
260
|
+
type: 'hr',
|
|
261
|
+
children: [(0, _core.generateDefaultText)()]
|
|
262
|
+
};
|
|
263
|
+
};
|
|
264
|
+
var transformHtml = exports.transformHtml = function transformHtml(node) {
|
|
265
|
+
var defaultTextNode = (0, _core.generateDefaultText)();
|
|
266
|
+
if (node.value.slice(0, 4).toLowerCase() === '<img') {
|
|
267
|
+
var _DOMParser$parseFromS = new DOMParser().parseFromString(node.value, 'text/html'),
|
|
268
|
+
body = _DOMParser$parseFromS.body;
|
|
269
|
+
var img = body.firstChild;
|
|
270
|
+
var src = img.getAttribute('src');
|
|
271
|
+
if (src) return defaultTextNode;
|
|
272
|
+
var alt = img.getAttribute('alt');
|
|
273
|
+
var title = img.getAttribute('title');
|
|
274
|
+
var width = img.getAttribute('width');
|
|
275
|
+
var height = img.getAttribute('height');
|
|
276
|
+
var data = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
277
|
+
src: src
|
|
278
|
+
}, alt && {
|
|
279
|
+
alt: alt
|
|
280
|
+
}), title && {
|
|
281
|
+
title: title
|
|
282
|
+
}), !isNaN(width) && width > 0 && {
|
|
283
|
+
width: width
|
|
284
|
+
}), !isNaN(height) && height > 0 && {
|
|
285
|
+
height: height
|
|
286
|
+
});
|
|
287
|
+
var image = {
|
|
288
|
+
id: _slugid.default.nice(),
|
|
289
|
+
data: data,
|
|
290
|
+
type: _elementTypes.IMAGE,
|
|
291
|
+
children: [(0, _core.generateDefaultText)()]
|
|
292
|
+
};
|
|
293
|
+
return [defaultTextNode, image, defaultTextNode];
|
|
294
|
+
}
|
|
295
|
+
return defaultTextNode;
|
|
296
|
+
};
|
|
297
|
+
var transformMath = exports.transformMath = function transformMath(node) {
|
|
298
|
+
return {
|
|
299
|
+
id: _slugid.default.nice(),
|
|
300
|
+
type: 'formula',
|
|
301
|
+
data: {
|
|
302
|
+
formula: node.value
|
|
303
|
+
},
|
|
304
|
+
children: [(0, _core.generateDefaultText)()]
|
|
305
|
+
};
|
|
306
|
+
};
|
|
307
|
+
var elementHandlers = {
|
|
308
|
+
'paragraph': transformParagraph,
|
|
309
|
+
'heading': transformHeader,
|
|
310
|
+
'blockquote': transformBlockquote,
|
|
311
|
+
'table': transformTable,
|
|
312
|
+
'list': transformList,
|
|
313
|
+
// ordered_list | unordered_list | check_list_item
|
|
314
|
+
'code': transformCodeBlock,
|
|
315
|
+
'thematicBreak': transformHr,
|
|
316
|
+
'math': transformMath
|
|
317
|
+
};
|
|
318
|
+
var formatMdToSlate = exports.formatMdToSlate = function formatMdToSlate(children) {
|
|
319
|
+
var validChildren = children.filter(function (child) {
|
|
320
|
+
return elementHandlers[child.type];
|
|
321
|
+
});
|
|
322
|
+
return validChildren.map(function (child) {
|
|
323
|
+
var handler = elementHandlers[child.type];
|
|
324
|
+
return handler(child);
|
|
325
|
+
}).flat();
|
|
326
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _unified = require("unified");
|
|
9
|
+
var _remarkParse = _interopRequireDefault(require("remark-parse"));
|
|
10
|
+
var _remarkGfm = _interopRequireDefault(require("remark-gfm"));
|
|
11
|
+
var _remarkStringify = _interopRequireDefault(require("remark-stringify"));
|
|
12
|
+
var _remarkMath = _interopRequireDefault(require("remark-math"));
|
|
13
|
+
var _transform = require("./transform");
|
|
14
|
+
var isContentValid = function isContentValid(value) {
|
|
15
|
+
if (!value || !Array.isArray(value)) return false;
|
|
16
|
+
return true;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
// slateNode -> mdast -> mdString
|
|
20
|
+
var slateToMdString = function slateToMdString(value) {
|
|
21
|
+
if (!isContentValid(value)) return '';
|
|
22
|
+
// slateNode -> mdast
|
|
23
|
+
// https://github.com/syntax-tree/mdast#phrasingcontent
|
|
24
|
+
var mdASTNodes = (0, _transform.formatSlateToMd)(value);
|
|
25
|
+
var root = {
|
|
26
|
+
type: 'root',
|
|
27
|
+
children: mdASTNodes
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
// convert slate value to md
|
|
31
|
+
var stringifyOptions = {
|
|
32
|
+
rule: '-',
|
|
33
|
+
ruleSpaces: false,
|
|
34
|
+
bullet: '*',
|
|
35
|
+
commonmarks: true,
|
|
36
|
+
fences: true
|
|
37
|
+
};
|
|
38
|
+
var res = (0, _unified.unified)().use(_remarkParse.default).use(_remarkGfm.default).use(_remarkStringify.default, stringifyOptions).use(_remarkMath.default).stringify(root);
|
|
39
|
+
return res;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
// transform rules: https://github.com/syntax-tree/mdast
|
|
43
|
+
var _default = exports.default = slateToMdString;
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.formatSlateToMd = void 0;
|
|
8
|
+
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createForOfIteratorHelper"));
|
|
9
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
10
|
+
var generateDefaultText = function generateDefaultText() {
|
|
11
|
+
return {
|
|
12
|
+
type: 'text',
|
|
13
|
+
value: ''
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
var transformTextNode = function transformTextNode(textNode) {
|
|
17
|
+
var mdNode = {
|
|
18
|
+
type: 'text',
|
|
19
|
+
value: textNode.text
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
// code = true, override text type
|
|
23
|
+
if (textNode['code']) {
|
|
24
|
+
mdNode = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, mdNode), {}, {
|
|
25
|
+
type: 'inlineCode'
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// blob = true, add strong parent
|
|
30
|
+
if (textNode['bold']) {
|
|
31
|
+
mdNode = {
|
|
32
|
+
type: 'strong',
|
|
33
|
+
children: [mdNode]
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// italic = true, add emphasis parent
|
|
38
|
+
if (textNode['italic']) {
|
|
39
|
+
mdNode = {
|
|
40
|
+
type: 'emphasis',
|
|
41
|
+
children: [mdNode]
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
return mdNode;
|
|
45
|
+
};
|
|
46
|
+
var transformInlineChildren = function transformInlineChildren(result, item) {
|
|
47
|
+
// image
|
|
48
|
+
if (item.type && item.type === 'image') {
|
|
49
|
+
var data = item.data;
|
|
50
|
+
var image = {
|
|
51
|
+
type: 'image',
|
|
52
|
+
url: data.src,
|
|
53
|
+
alt: data.alt || null,
|
|
54
|
+
title: data.title || null
|
|
55
|
+
};
|
|
56
|
+
if (data.height || data.width) {
|
|
57
|
+
image = {
|
|
58
|
+
type: 'html',
|
|
59
|
+
value: "<img src=\"".concat(data.src, "\" alt=\"").concat(data.alt, "\" title=\"").concat(data.title, "\" width=\"").concat(data.width, "\" height=\"").concat(data.height, "\" />")
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
result.push(image);
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// link
|
|
67
|
+
if (item.type && item.type === 'link') {
|
|
68
|
+
var link = {
|
|
69
|
+
type: 'link',
|
|
70
|
+
url: item.url,
|
|
71
|
+
title: item.title || null,
|
|
72
|
+
children: [transformTextNode(item.children[0])]
|
|
73
|
+
};
|
|
74
|
+
result.push(link);
|
|
75
|
+
return result;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// text
|
|
79
|
+
var nodes = transformTextNode(item);
|
|
80
|
+
result.push(nodes);
|
|
81
|
+
return result;
|
|
82
|
+
};
|
|
83
|
+
var transformNodeWithInlineChildren = function transformNodeWithInlineChildren(node) {
|
|
84
|
+
var children = node.children;
|
|
85
|
+
var defaultChildren = [generateDefaultText()];
|
|
86
|
+
if (!children || !Array.isArray(children) || children.length === 0) {
|
|
87
|
+
return defaultChildren;
|
|
88
|
+
}
|
|
89
|
+
var result = [];
|
|
90
|
+
children.forEach(function (item) {
|
|
91
|
+
return transformInlineChildren(result, item);
|
|
92
|
+
});
|
|
93
|
+
return result.flat();
|
|
94
|
+
};
|
|
95
|
+
var transformHeader = function transformHeader(node) {
|
|
96
|
+
var level = node.type.replace('header', '');
|
|
97
|
+
return {
|
|
98
|
+
type: 'heading',
|
|
99
|
+
depth: parseInt(level),
|
|
100
|
+
children: transformNodeWithInlineChildren(node)
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
var transformParagraph = function transformParagraph(node) {
|
|
104
|
+
return {
|
|
105
|
+
type: 'paragraph',
|
|
106
|
+
children: transformNodeWithInlineChildren(node)
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
var transformBlockquote = function transformBlockquote(node) {
|
|
110
|
+
var children = node.children;
|
|
111
|
+
return {
|
|
112
|
+
type: 'blockquote',
|
|
113
|
+
children: children.map(function (child) {
|
|
114
|
+
var handler = elementHandlers[child.type];
|
|
115
|
+
return handler(child);
|
|
116
|
+
}).flat() // flat
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
var transformCheckList = function transformCheckList(node) {
|
|
121
|
+
return {
|
|
122
|
+
type: 'list',
|
|
123
|
+
ordered: false,
|
|
124
|
+
start: null,
|
|
125
|
+
spread: false,
|
|
126
|
+
children: [{
|
|
127
|
+
type: 'listItem',
|
|
128
|
+
spread: false,
|
|
129
|
+
checked: node.checked,
|
|
130
|
+
children: [transformParagraph(node)]
|
|
131
|
+
}]
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
var transformListContent = function transformListContent(node) {
|
|
135
|
+
return transformParagraph(node);
|
|
136
|
+
};
|
|
137
|
+
var transformListItem = function transformListItem(node) {
|
|
138
|
+
var loose = false;
|
|
139
|
+
var children = node.children;
|
|
140
|
+
// eslint-disable-next-line array-callback-return
|
|
141
|
+
var newChildren = children.map(function (child) {
|
|
142
|
+
if (child.type === 'paragraph') {
|
|
143
|
+
return transformListContent(child);
|
|
144
|
+
}
|
|
145
|
+
if (child.type === 'unordered_list' || child.type === 'ordered_list') {
|
|
146
|
+
return transformList(child);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
if (newChildren.length === 1) {
|
|
150
|
+
loose = false;
|
|
151
|
+
} else if (newChildren.length === 2 && newChildren[1].type === 'list') {
|
|
152
|
+
loose = true;
|
|
153
|
+
} else {
|
|
154
|
+
loose = true;
|
|
155
|
+
}
|
|
156
|
+
return {
|
|
157
|
+
type: 'listItem',
|
|
158
|
+
loose: loose,
|
|
159
|
+
checked: null,
|
|
160
|
+
children: newChildren
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
var transformList = function transformList(node) {
|
|
164
|
+
var children = node.children;
|
|
165
|
+
var newChildren = children.map(function (child) {
|
|
166
|
+
return transformListItem(child);
|
|
167
|
+
});
|
|
168
|
+
var loose = false;
|
|
169
|
+
var _iterator = (0, _createForOfIteratorHelper2.default)(newChildren),
|
|
170
|
+
_step;
|
|
171
|
+
try {
|
|
172
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
173
|
+
var _node = _step.value;
|
|
174
|
+
if (_node.loose === true) {
|
|
175
|
+
loose = true;
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
} catch (err) {
|
|
180
|
+
_iterator.e(err);
|
|
181
|
+
} finally {
|
|
182
|
+
_iterator.f();
|
|
183
|
+
}
|
|
184
|
+
return {
|
|
185
|
+
type: 'list',
|
|
186
|
+
ordered: node.type === 'ordered_list',
|
|
187
|
+
// ordered_list | unordered_list
|
|
188
|
+
start: 1,
|
|
189
|
+
loose: loose,
|
|
190
|
+
children: newChildren
|
|
191
|
+
};
|
|
192
|
+
};
|
|
193
|
+
var transformTableCell = function transformTableCell(cell) {
|
|
194
|
+
return {
|
|
195
|
+
type: 'tableCell',
|
|
196
|
+
children: transformNodeWithInlineChildren(cell)
|
|
197
|
+
};
|
|
198
|
+
};
|
|
199
|
+
var transformTableRow = function transformTableRow(row) {
|
|
200
|
+
var cells = row.children;
|
|
201
|
+
return {
|
|
202
|
+
type: 'tableRow',
|
|
203
|
+
children: cells.map(function (cell) {
|
|
204
|
+
return transformTableCell(cell);
|
|
205
|
+
})
|
|
206
|
+
};
|
|
207
|
+
};
|
|
208
|
+
var transformTable = function transformTable(node) {
|
|
209
|
+
var rows = node.children;
|
|
210
|
+
var align = rows.map(function (row) {
|
|
211
|
+
var _cells$;
|
|
212
|
+
var cells = row.children;
|
|
213
|
+
return ((_cells$ = cells[0]) === null || _cells$ === void 0 ? void 0 : _cells$.align) || null;
|
|
214
|
+
});
|
|
215
|
+
return {
|
|
216
|
+
type: 'table',
|
|
217
|
+
align: align,
|
|
218
|
+
children: rows.map(function (row) {
|
|
219
|
+
return transformTableRow(row);
|
|
220
|
+
})
|
|
221
|
+
};
|
|
222
|
+
};
|
|
223
|
+
var transformCodeLine = function transformCodeLine(node) {
|
|
224
|
+
var _node$children$;
|
|
225
|
+
var text = ((_node$children$ = node.children[0]) === null || _node$children$ === void 0 ? void 0 : _node$children$.text) || '';
|
|
226
|
+
return text;
|
|
227
|
+
};
|
|
228
|
+
var transformCodeBlock = function transformCodeBlock(node) {
|
|
229
|
+
var children = node.children;
|
|
230
|
+
return {
|
|
231
|
+
type: 'code',
|
|
232
|
+
lang: node.lang ? node.lang : null,
|
|
233
|
+
value: children.map(function (child) {
|
|
234
|
+
return transformCodeLine(child);
|
|
235
|
+
}).join('\n')
|
|
236
|
+
};
|
|
237
|
+
};
|
|
238
|
+
var transformFormula = function transformFormula(node) {
|
|
239
|
+
var data = node.data;
|
|
240
|
+
return {
|
|
241
|
+
type: 'math',
|
|
242
|
+
value: data.formula
|
|
243
|
+
};
|
|
244
|
+
};
|
|
245
|
+
var elementHandlers = {
|
|
246
|
+
'paragraph': transformParagraph,
|
|
247
|
+
'header1': transformHeader,
|
|
248
|
+
'header2': transformHeader,
|
|
249
|
+
'header3': transformHeader,
|
|
250
|
+
'header4': transformHeader,
|
|
251
|
+
'header5': transformHeader,
|
|
252
|
+
'header6': transformHeader,
|
|
253
|
+
'blockquote': transformBlockquote,
|
|
254
|
+
'table': transformTable,
|
|
255
|
+
'check_list_item': transformCheckList,
|
|
256
|
+
'ordered_list': transformList,
|
|
257
|
+
'unordered_list': transformList,
|
|
258
|
+
'code_block': transformCodeBlock,
|
|
259
|
+
'formula': transformFormula
|
|
260
|
+
};
|
|
261
|
+
var formatSlateToMd = exports.formatSlateToMd = function formatSlateToMd(children) {
|
|
262
|
+
var validChildren = children.filter(function (child) {
|
|
263
|
+
return elementHandlers[child.type];
|
|
264
|
+
});
|
|
265
|
+
return validChildren.map(function (child) {
|
|
266
|
+
var handler = elementHandlers[child.type];
|
|
267
|
+
return handler(child);
|
|
268
|
+
}).flat();
|
|
269
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.isUrl = exports.isMac = exports.isImage = exports.IMAGE_TYPES = void 0;
|
|
8
|
+
var _isUrl = _interopRequireDefault(require("is-url"));
|
|
9
|
+
var isMac = exports.isMac = function isMac() {
|
|
10
|
+
var platform = navigator.platform;
|
|
11
|
+
return platform === 'Mac68K' || platform === 'MacPPC' || platform === 'Macintosh' || platform === 'MacIntel';
|
|
12
|
+
};
|
|
13
|
+
var IMAGE_TYPES = exports.IMAGE_TYPES = ['png', 'jpg', 'gif'];
|
|
14
|
+
var isImage = exports.isImage = function isImage(url) {
|
|
15
|
+
if (!url) return false;
|
|
16
|
+
if (!isUrl(url)) return false;
|
|
17
|
+
var suffix = url.split('.')[1]; // http://xx/mm/*.png
|
|
18
|
+
if (!suffix) return false;
|
|
19
|
+
return IMAGE_TYPES.includes(suffix.toLowerCase());
|
|
20
|
+
};
|
|
21
|
+
var isUrl = exports.isUrl = function isUrl(url) {
|
|
22
|
+
if (!url) return false;
|
|
23
|
+
if (!url.startsWith('http')) return false;
|
|
24
|
+
if (!(0, _isUrl.default)(url)) return false;
|
|
25
|
+
return true;
|
|
26
|
+
};
|