@seafile/seafile-editor 1.0.2 → 1.0.4
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 +2 -8
- package/dist/constants/hot-keys.js +1 -7
- package/dist/containers/article-info/index.js +24 -34
- package/dist/containers/custom/get-event-transfer.js +10 -16
- package/dist/containers/custom/set-event-transfer.js +10 -16
- package/dist/containers/hotkeys-helper/classify-hotkeys.js +20 -25
- package/dist/containers/hotkeys-helper/index.js +32 -35
- package/dist/containers/loading/index.js +11 -32
- package/dist/containers/outline/index.js +41 -51
- package/dist/containers/outline/outline-item.js +15 -21
- package/dist/editors/plain-markdown-editor/code-mirror.js +51 -75
- package/dist/editors/plain-markdown-editor/index.js +90 -107
- package/dist/editors/simple-slate-editor /index.js +43 -57
- package/dist/editors/simple-slate-editor /with-props-editor.js +4 -10
- package/dist/editors/slate-editor/editor-help/index.js +24 -37
- package/dist/editors/slate-editor/index.js +50 -64
- package/dist/editors/slate-editor/with-props-editor.js +4 -10
- package/dist/editors/slate-viewer/index.js +25 -31
- package/dist/extension/commons/element-popover/index.js +30 -55
- package/dist/extension/commons/index.js +3 -26
- package/dist/extension/commons/menu/index.js +4 -21
- package/dist/extension/commons/menu/menu-drop-down.js +50 -63
- package/dist/extension/commons/menu/menu-group.js +4 -11
- package/dist/extension/commons/menu/menu-item.js +25 -30
- package/dist/extension/commons/tooltip/index.js +14 -19
- package/dist/extension/constants/element-types.js +22 -28
- package/dist/extension/constants/index.js +15 -37
- package/dist/extension/constants/keyboard.js +3 -9
- package/dist/extension/constants/menus-config.js +118 -105
- package/dist/extension/core/index.js +3 -38
- package/dist/extension/core/queries/index.js +209 -304
- package/dist/extension/core/transforms/focus-editor.js +7 -13
- package/dist/extension/core/transforms/index.js +4 -49
- package/dist/extension/core/transforms/move-children.js +18 -25
- package/dist/extension/core/transforms/remove-node-children.js +8 -27
- package/dist/extension/core/transforms/replace-node-children.js +14 -19
- package/dist/extension/core/utils/index.js +36 -44
- package/dist/extension/editor.js +8 -15
- package/dist/extension/index.js +7 -48
- package/dist/extension/plugins/blockquote/helpers.js +38 -57
- package/dist/extension/plugins/blockquote/index.js +8 -15
- package/dist/extension/plugins/blockquote/menu/index.js +20 -25
- package/dist/extension/plugins/blockquote/plugin.js +35 -41
- package/dist/extension/plugins/blockquote/render-elem.js +9 -14
- package/dist/extension/plugins/check-list/helper.js +14 -24
- package/dist/extension/plugins/check-list/index.js +10 -17
- package/dist/extension/plugins/check-list/menu/index.js +21 -29
- package/dist/extension/plugins/check-list/plugin.js +24 -26
- package/dist/extension/plugins/check-list/render-elem.js +22 -28
- package/dist/extension/plugins/clear-format/helpers.js +25 -47
- package/dist/extension/plugins/clear-format/menu/index.js +22 -29
- package/dist/extension/plugins/code-block/helpers.js +74 -126
- package/dist/extension/plugins/code-block/index.js +10 -18
- package/dist/extension/plugins/code-block/menu/index.js +20 -27
- package/dist/extension/plugins/code-block/plugin.js +123 -144
- package/dist/extension/plugins/code-block/render-elem/constant.js +15 -11
- package/dist/extension/plugins/code-block/render-elem/index.js +30 -39
- package/dist/extension/plugins/code-block/render-elem/language-selector.js +19 -27
- package/dist/extension/plugins/formula/helper.js +39 -45
- package/dist/extension/plugins/formula/index.js +10 -17
- package/dist/extension/plugins/formula/menu/formula-modal.js +37 -52
- package/dist/extension/plugins/formula/menu/index.js +34 -50
- package/dist/extension/plugins/formula/plugin.js +12 -14
- package/dist/extension/plugins/formula/render-elem.js +27 -33
- package/dist/extension/plugins/header/helper.js +35 -48
- package/dist/extension/plugins/header/index.js +10 -17
- package/dist/extension/plugins/header/menu/index.js +52 -66
- package/dist/extension/plugins/header/plugin.js +72 -83
- package/dist/extension/plugins/header/render-elem.js +15 -20
- package/dist/extension/plugins/image/helper.js +28 -37
- package/dist/extension/plugins/image/index.js +10 -17
- package/dist/extension/plugins/image/menu/image-menu-dialog.js +31 -42
- package/dist/extension/plugins/image/menu/image-menu-popover.js +35 -67
- package/dist/extension/plugins/image/menu/index.js +24 -34
- package/dist/extension/plugins/image/plugin.js +18 -18
- package/dist/extension/plugins/image/render-element/image-previewer.js +32 -42
- package/dist/extension/plugins/image/render-element/index.js +58 -74
- package/dist/extension/plugins/index.js +18 -94
- package/dist/extension/plugins/link/helper.js +102 -139
- package/dist/extension/plugins/link/index.js +10 -17
- package/dist/extension/plugins/link/menu/index.js +46 -62
- package/dist/extension/plugins/link/menu/link-modal.js +67 -87
- package/dist/extension/plugins/link/plugin.js +52 -56
- package/dist/extension/plugins/link/render-elem/index.js +39 -54
- package/dist/extension/plugins/link/render-elem/link-popover.js +38 -42
- package/dist/extension/plugins/list/constant.js +2 -8
- package/dist/extension/plugins/list/helpers.js +40 -54
- package/dist/extension/plugins/list/index.js +10 -17
- package/dist/extension/plugins/list/menu/index.js +23 -33
- package/dist/extension/plugins/list/plugin/index.js +28 -31
- package/dist/extension/plugins/list/plugin/insert-break-list.js +9 -15
- package/dist/extension/plugins/list/plugin/insert-fragment-list.js +86 -109
- package/dist/extension/plugins/list/plugin/normalize-list.js +31 -42
- package/dist/extension/plugins/list/plugin/on-tab-handle.js +35 -34
- package/dist/extension/plugins/list/queries/index.js +22 -30
- package/dist/extension/plugins/list/render-elem/index.js +27 -27
- package/dist/extension/plugins/list/transforms/index.js +11 -75
- package/dist/extension/plugins/list/transforms/insert-list-item.js +38 -47
- package/dist/extension/plugins/list/transforms/move-list-item-down.js +22 -32
- package/dist/extension/plugins/list/transforms/move-list-item-up.js +45 -56
- package/dist/extension/plugins/list/transforms/move-list-items-to-list.js +25 -31
- package/dist/extension/plugins/list/transforms/move-list-items.js +37 -44
- package/dist/extension/plugins/list/transforms/normalize-list-item.js +57 -81
- package/dist/extension/plugins/list/transforms/normalize-nested-list.js +17 -26
- package/dist/extension/plugins/list/transforms/remove-first-list-item.js +12 -19
- package/dist/extension/plugins/list/transforms/transforms-to-list.js +60 -84
- package/dist/extension/plugins/list/transforms/unwrap-list.js +20 -29
- package/dist/extension/plugins/node-id/constants.js +9 -15
- package/dist/extension/plugins/node-id/helpers.js +33 -35
- package/dist/extension/plugins/node-id/index.js +4 -11
- package/dist/extension/plugins/node-id/with-node-id.js +18 -26
- package/dist/extension/plugins/paragraph/helper.js +7 -13
- package/dist/extension/plugins/paragraph/index.js +8 -15
- package/dist/extension/plugins/paragraph/plugin.js +25 -27
- package/dist/extension/plugins/paragraph/render-elem.js +9 -14
- package/dist/extension/plugins/table/constant.js +3 -9
- package/dist/extension/plugins/table/helper.js +133 -154
- package/dist/extension/plugins/table/index.js +11 -19
- package/dist/extension/plugins/table/menu/index.js +26 -38
- package/dist/extension/plugins/table/menu/table-operator.js +62 -77
- package/dist/extension/plugins/table/menu/table-size-selector.js +41 -62
- package/dist/extension/plugins/table/model.js +39 -41
- package/dist/extension/plugins/table/plugin.js +95 -102
- package/dist/extension/plugins/table/render-elem/context-menu.js +42 -65
- package/dist/extension/plugins/table/render-elem/index.js +85 -93
- package/dist/extension/plugins/table/table-operations.js +101 -118
- package/dist/extension/plugins/text-style/helpers.js +18 -28
- package/dist/extension/plugins/text-style/index.js +8 -15
- package/dist/extension/plugins/text-style/menu/index.js +19 -25
- package/dist/extension/plugins/text-style/plugin.js +16 -21
- package/dist/extension/plugins/text-style/render-elem.js +28 -33
- package/dist/extension/render/render-element.js +26 -47
- package/dist/extension/render/render-leaf.js +9 -18
- package/dist/extension/toolbar/header-toolbar/index.js +66 -84
- package/dist/extension/toolbar/index.js +2 -13
- package/dist/extension/toolbar/user-help/shortcut-dialog.js +108 -131
- package/dist/hooks/use-mathjax.js +9 -20
- package/dist/hooks/use-scroll-context.js +7 -12
- package/dist/hooks/use-selection-update.js +9 -21
- package/dist/index.js +9 -80
- package/dist/pages/markdown-editor.js +30 -43
- package/dist/pages/markdown-view.js +25 -37
- package/dist/pages/rich-markdown-editor.js +54 -67
- package/dist/pages/simple-editor.js +29 -42
- package/dist/slate-convert/html-to-slate/constants.js +26 -32
- package/dist/slate-convert/html-to-slate/helper.js +1 -7
- package/dist/slate-convert/html-to-slate/index.js +44 -51
- package/dist/slate-convert/html-to-slate/rules/blockquote.js +10 -15
- package/dist/slate-convert/html-to-slate/rules/check-list.js +10 -15
- package/dist/slate-convert/html-to-slate/rules/code-block.js +40 -51
- package/dist/slate-convert/html-to-slate/rules/header.js +11 -16
- package/dist/slate-convert/html-to-slate/rules/image.js +10 -15
- package/dist/slate-convert/html-to-slate/rules/index.js +11 -18
- package/dist/slate-convert/html-to-slate/rules/link.js +11 -16
- package/dist/slate-convert/html-to-slate/rules/list.js +21 -26
- package/dist/slate-convert/html-to-slate/rules/paragraph.js +10 -15
- package/dist/slate-convert/html-to-slate/rules/table.js +14 -19
- package/dist/slate-convert/html-to-slate/rules/text.js +14 -19
- package/dist/slate-convert/index.js +8 -34
- package/dist/slate-convert/md-to-html/index.js +26 -31
- package/dist/slate-convert/md-to-html/sanitize-schema.js +5 -12
- package/dist/slate-convert/md-to-slate/index.js +17 -23
- package/dist/slate-convert/md-to-slate/transform.js +183 -175
- package/dist/slate-convert/slate-to-md/index.js +14 -20
- package/dist/slate-convert/slate-to-md/transform.js +76 -87
- package/dist/utils/common.js +8 -15
- package/dist/utils/deserialize-html.js +118 -166
- package/dist/utils/dom-utils.js +18 -22
- package/dist/utils/event-bus.js +27 -47
- package/dist/utils/event-handler.js +29 -38
- package/dist/utils/object-utils.js +39 -62
- package/package.json +5 -4
|
@@ -1,88 +1,77 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var _constants = require("../constants");
|
|
10
|
-
var _helper = require("../helper");
|
|
11
|
-
var codeBlockRule = function codeBlockRule(element, parseChild) {
|
|
12
|
-
var nodeName = element.nodeName,
|
|
13
|
-
childNodes = element.childNodes;
|
|
1
|
+
import slugid from 'slugid';
|
|
2
|
+
import { CODE_BLOCK, CODE_LINE } from '../constants';
|
|
3
|
+
import { genCodeLangs } from '../helper';
|
|
4
|
+
const codeBlockRule = (element, parseChild) => {
|
|
5
|
+
const {
|
|
6
|
+
nodeName,
|
|
7
|
+
childNodes
|
|
8
|
+
} = element;
|
|
14
9
|
if (nodeName === 'PRE') {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
});
|
|
18
|
-
var codeChild = children[0];
|
|
10
|
+
const children = Array.from(childNodes).filter(item => item.nodeName === 'CODE');
|
|
11
|
+
let codeChild = children[0];
|
|
19
12
|
if (codeChild) {
|
|
20
|
-
|
|
21
|
-
lang =
|
|
22
|
-
return item.value === lang;
|
|
23
|
-
}) || 'plaintext';
|
|
13
|
+
let lang = codeChild.getAttribute('lang');
|
|
14
|
+
lang = genCodeLangs().find(item => item.value === lang) || 'plaintext';
|
|
24
15
|
return {
|
|
25
|
-
id:
|
|
16
|
+
id: slugid.nice(),
|
|
26
17
|
language: lang,
|
|
27
|
-
type:
|
|
18
|
+
type: CODE_BLOCK,
|
|
28
19
|
children: parseChild(children)
|
|
29
20
|
};
|
|
30
21
|
} else {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
22
|
+
const lang = 'plaintext';
|
|
23
|
+
const content = childNodes[0].textContent;
|
|
24
|
+
const children = content.split('\n').map(text => {
|
|
34
25
|
return {
|
|
35
|
-
id:
|
|
36
|
-
type:
|
|
26
|
+
id: slugid.nice(),
|
|
27
|
+
type: CODE_LINE,
|
|
37
28
|
children: [{
|
|
38
|
-
id:
|
|
29
|
+
id: slugid.nice(),
|
|
39
30
|
text: text
|
|
40
31
|
}]
|
|
41
32
|
};
|
|
42
33
|
});
|
|
43
34
|
return {
|
|
44
|
-
id:
|
|
45
|
-
language:
|
|
46
|
-
type:
|
|
47
|
-
children:
|
|
35
|
+
id: slugid.nice(),
|
|
36
|
+
language: lang,
|
|
37
|
+
type: CODE_BLOCK,
|
|
38
|
+
children: children
|
|
48
39
|
};
|
|
49
40
|
}
|
|
50
41
|
}
|
|
51
42
|
if (nodeName === 'CODE' && element.parentElement.nodeName === 'PRE') {
|
|
52
|
-
|
|
53
|
-
return n.nodeName === 'P';
|
|
54
|
-
});
|
|
43
|
+
const childIsP = Array.from(childNodes).every(n => n.nodeName === 'P');
|
|
55
44
|
if (childIsP) {
|
|
56
|
-
return Array.from(childNodes).map(
|
|
45
|
+
return Array.from(childNodes).map(n => {
|
|
57
46
|
return {
|
|
58
|
-
id:
|
|
59
|
-
type:
|
|
47
|
+
id: slugid.nice(),
|
|
48
|
+
type: CODE_LINE,
|
|
60
49
|
children: [{
|
|
61
|
-
id:
|
|
50
|
+
id: slugid.nice(),
|
|
62
51
|
text: n.textContent
|
|
63
52
|
}]
|
|
64
53
|
};
|
|
65
54
|
});
|
|
66
55
|
}
|
|
67
|
-
|
|
68
|
-
|
|
56
|
+
const content = element.textContent;
|
|
57
|
+
const hasNewLine = content.indexOf('\n') > -1;
|
|
69
58
|
if (!hasNewLine) {
|
|
70
59
|
return {
|
|
71
|
-
id:
|
|
72
|
-
type:
|
|
60
|
+
id: slugid.nice(),
|
|
61
|
+
type: CODE_LINE,
|
|
73
62
|
children: [{
|
|
74
|
-
id:
|
|
63
|
+
id: slugid.nice(),
|
|
75
64
|
text: element.textContent
|
|
76
65
|
}]
|
|
77
66
|
};
|
|
78
67
|
}
|
|
79
|
-
|
|
80
|
-
return codes.map(
|
|
68
|
+
const codes = content.split('\n');
|
|
69
|
+
return codes.map(item => {
|
|
81
70
|
return {
|
|
82
|
-
id:
|
|
83
|
-
type:
|
|
71
|
+
id: slugid.nice(),
|
|
72
|
+
type: CODE_LINE,
|
|
84
73
|
children: [{
|
|
85
|
-
id:
|
|
74
|
+
id: slugid.nice(),
|
|
86
75
|
text: item
|
|
87
76
|
}]
|
|
88
77
|
};
|
|
@@ -90,4 +79,4 @@ var codeBlockRule = function codeBlockRule(element, parseChild) {
|
|
|
90
79
|
}
|
|
91
80
|
return;
|
|
92
81
|
};
|
|
93
|
-
|
|
82
|
+
export default codeBlockRule;
|
|
@@ -1,22 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var _constants = require("../constants");
|
|
10
|
-
var headerRule = function headerRule(element, parseChild) {
|
|
11
|
-
var nodeName = element.nodeName,
|
|
12
|
-
childNodes = element.childNodes;
|
|
13
|
-
if (nodeName && _constants.HEADER_LIST.includes(nodeName)) {
|
|
1
|
+
import slugid from 'slugid';
|
|
2
|
+
import { HEADER_LIST, HEADER_TYPE_MAP } from '../constants';
|
|
3
|
+
const headerRule = (element, parseChild) => {
|
|
4
|
+
const {
|
|
5
|
+
nodeName,
|
|
6
|
+
childNodes
|
|
7
|
+
} = element;
|
|
8
|
+
if (nodeName && HEADER_LIST.includes(nodeName)) {
|
|
14
9
|
return {
|
|
15
|
-
id:
|
|
16
|
-
type:
|
|
10
|
+
id: slugid.nice(),
|
|
11
|
+
type: HEADER_TYPE_MAP[nodeName],
|
|
17
12
|
children: parseChild(childNodes)
|
|
18
13
|
};
|
|
19
14
|
}
|
|
20
15
|
return;
|
|
21
16
|
};
|
|
22
|
-
|
|
17
|
+
export default headerRule;
|
|
@@ -1,27 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _slugid = _interopRequireDefault(require("slugid"));
|
|
9
|
-
var _constants = require("../constants");
|
|
10
|
-
var imageRule = function imageRule(element, parseChild) {
|
|
11
|
-
var nodeName = element.nodeName;
|
|
1
|
+
import slugid from 'slugid';
|
|
2
|
+
import { IMAGE } from '../constants';
|
|
3
|
+
const imageRule = (element, parseChild) => {
|
|
4
|
+
const {
|
|
5
|
+
nodeName
|
|
6
|
+
} = element;
|
|
12
7
|
if (nodeName === 'IMG') {
|
|
13
8
|
return {
|
|
14
|
-
id:
|
|
15
|
-
type:
|
|
9
|
+
id: slugid.nice(),
|
|
10
|
+
type: IMAGE,
|
|
16
11
|
data: {
|
|
17
12
|
src: element.getAttribute('src')
|
|
18
13
|
},
|
|
19
14
|
children: [{
|
|
20
15
|
text: '',
|
|
21
|
-
id:
|
|
16
|
+
id: slugid.nice()
|
|
22
17
|
}]
|
|
23
18
|
};
|
|
24
19
|
}
|
|
25
20
|
return;
|
|
26
21
|
};
|
|
27
|
-
|
|
22
|
+
export default imageRule;
|
|
@@ -1,18 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var _link = _interopRequireDefault(require("./link"));
|
|
13
|
-
var _list = _interopRequireDefault(require("./list"));
|
|
14
|
-
var _paragraph = _interopRequireDefault(require("./paragraph"));
|
|
15
|
-
var _table = _interopRequireDefault(require("./table"));
|
|
16
|
-
var _text = _interopRequireDefault(require("./text"));
|
|
17
|
-
var rules = [_blockquote.default, _codeBlock.default, _header.default, _image.default, _link.default, _list.default, _table.default, _paragraph.default, _text.default];
|
|
18
|
-
var _default = exports.default = rules;
|
|
1
|
+
import blockquoteRule from './blockquote';
|
|
2
|
+
import codeBlockRule from './code-block';
|
|
3
|
+
import headerRule from './header';
|
|
4
|
+
import imageRule from './image';
|
|
5
|
+
import linkRule from './link';
|
|
6
|
+
import listRule from './list';
|
|
7
|
+
import paragraphRule from './paragraph';
|
|
8
|
+
import tableRule from './table';
|
|
9
|
+
import textRule from './text';
|
|
10
|
+
const rules = [blockquoteRule, codeBlockRule, headerRule, imageRule, linkRule, listRule, tableRule, paragraphRule, textRule];
|
|
11
|
+
export default rules;
|
|
@@ -1,27 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
var _slugid = _interopRequireDefault(require("slugid"));
|
|
9
|
-
var _constants = require("../constants");
|
|
10
|
-
var linkRule = function linkRule(element, parseChild) {
|
|
11
|
-
var nodeName = element.nodeName;
|
|
12
|
-
var content = element.textContent || element.getAttribute('title') || element.getAttribute('href');
|
|
1
|
+
import slugid from 'slugid';
|
|
2
|
+
import { LINK } from '../constants';
|
|
3
|
+
const linkRule = (element, parseChild) => {
|
|
4
|
+
const {
|
|
5
|
+
nodeName
|
|
6
|
+
} = element;
|
|
7
|
+
const content = element.textContent || element.getAttribute('title') || element.getAttribute('href');
|
|
13
8
|
if (nodeName === 'A') {
|
|
14
9
|
return {
|
|
15
|
-
id:
|
|
16
|
-
type:
|
|
10
|
+
id: slugid.nice(),
|
|
11
|
+
type: LINK,
|
|
17
12
|
href: element.getAttribute('href'),
|
|
18
13
|
title: element.getAttribute('title'),
|
|
19
14
|
children: [{
|
|
20
|
-
id:
|
|
15
|
+
id: slugid.nice(),
|
|
21
16
|
text: content
|
|
22
17
|
}]
|
|
23
18
|
};
|
|
24
19
|
}
|
|
25
20
|
return;
|
|
26
21
|
};
|
|
27
|
-
|
|
22
|
+
export default linkRule;
|
|
@@ -1,55 +1,50 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var _constants = require("../constants");
|
|
10
|
-
var PARAGRAPH_TAGS = ['DIV', 'P'];
|
|
11
|
-
var listRule = function listRule(element, parseChild) {
|
|
12
|
-
var nodeName = element.nodeName,
|
|
13
|
-
childNodes = element.childNodes;
|
|
1
|
+
import slugid from 'slugid';
|
|
2
|
+
import { LIST_ITEM, ORDERED_LIST, PARAGRAPH, UNORDERED_LIST } from '../constants';
|
|
3
|
+
const PARAGRAPH_TAGS = ['DIV', 'P'];
|
|
4
|
+
const listRule = (element, parseChild) => {
|
|
5
|
+
const {
|
|
6
|
+
nodeName,
|
|
7
|
+
childNodes
|
|
8
|
+
} = element;
|
|
14
9
|
if (nodeName === 'UL') {
|
|
15
10
|
return {
|
|
16
|
-
id:
|
|
17
|
-
type:
|
|
11
|
+
id: slugid.nice(),
|
|
12
|
+
type: UNORDERED_LIST,
|
|
18
13
|
children: parseChild(childNodes)
|
|
19
14
|
};
|
|
20
15
|
}
|
|
21
16
|
if (nodeName === 'OL') {
|
|
22
17
|
return {
|
|
23
|
-
id:
|
|
24
|
-
type:
|
|
18
|
+
id: slugid.nice(),
|
|
19
|
+
type: ORDERED_LIST,
|
|
25
20
|
children: parseChild(childNodes)
|
|
26
21
|
};
|
|
27
22
|
}
|
|
28
23
|
if (nodeName === 'LI' && PARAGRAPH_TAGS.includes(element.firstChild.nodeName)) {
|
|
29
24
|
return {
|
|
30
|
-
id:
|
|
31
|
-
type:
|
|
25
|
+
id: slugid.nice(),
|
|
26
|
+
type: LIST_ITEM,
|
|
32
27
|
children: parseChild(childNodes)
|
|
33
28
|
};
|
|
34
29
|
}
|
|
35
30
|
if (nodeName === 'LI' && !PARAGRAPH_TAGS.includes(element.firstChild.nodeName)) {
|
|
36
31
|
return {
|
|
37
|
-
id:
|
|
38
|
-
type:
|
|
32
|
+
id: slugid.nice(),
|
|
33
|
+
type: LIST_ITEM,
|
|
39
34
|
children: [{
|
|
40
|
-
id:
|
|
41
|
-
type:
|
|
35
|
+
id: slugid.nice(),
|
|
36
|
+
type: PARAGRAPH,
|
|
42
37
|
children: parseChild(childNodes)
|
|
43
38
|
}]
|
|
44
39
|
};
|
|
45
40
|
}
|
|
46
41
|
if (PARAGRAPH_TAGS.includes(nodeName) && element.parentElement.nodeName === 'LI') {
|
|
47
42
|
return {
|
|
48
|
-
id:
|
|
49
|
-
type:
|
|
43
|
+
id: slugid.nice(),
|
|
44
|
+
type: PARAGRAPH,
|
|
50
45
|
children: parseChild(childNodes)
|
|
51
46
|
};
|
|
52
47
|
}
|
|
53
48
|
return;
|
|
54
49
|
};
|
|
55
|
-
|
|
50
|
+
export default listRule;
|
|
@@ -1,22 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _slugid = _interopRequireDefault(require("slugid"));
|
|
9
|
-
var _constants = require("../constants");
|
|
10
|
-
var paragraphRule = function paragraphRule(element, parseChild) {
|
|
11
|
-
var nodeName = element.nodeName,
|
|
12
|
-
childNodes = element.childNodes;
|
|
1
|
+
import slugid from 'slugid';
|
|
2
|
+
import { PARAGRAPH } from '../constants';
|
|
3
|
+
const paragraphRule = (element, parseChild) => {
|
|
4
|
+
const {
|
|
5
|
+
nodeName,
|
|
6
|
+
childNodes
|
|
7
|
+
} = element;
|
|
13
8
|
if (nodeName === 'P' && element.parentElement.nodeName !== 'LI') {
|
|
14
9
|
return {
|
|
15
|
-
id:
|
|
16
|
-
type:
|
|
10
|
+
id: slugid.nice(),
|
|
11
|
+
type: PARAGRAPH,
|
|
17
12
|
children: parseChild(childNodes)
|
|
18
13
|
};
|
|
19
14
|
}
|
|
20
15
|
return;
|
|
21
16
|
};
|
|
22
|
-
|
|
17
|
+
export default paragraphRule;
|
|
@@ -1,19 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _slugid = _interopRequireDefault(require("slugid"));
|
|
9
|
-
var _constants = require("../constants");
|
|
10
|
-
var tableRule = function tableRule(element, parseChild) {
|
|
11
|
-
var nodeName = element.nodeName,
|
|
12
|
-
childNodes = element.childNodes;
|
|
1
|
+
import slugid from 'slugid';
|
|
2
|
+
import { TABLE, TABLE_CELL, TABLE_ROW } from '../constants';
|
|
3
|
+
const tableRule = (element, parseChild) => {
|
|
4
|
+
const {
|
|
5
|
+
nodeName,
|
|
6
|
+
childNodes
|
|
7
|
+
} = element;
|
|
13
8
|
if (nodeName === 'TABLE') {
|
|
14
9
|
return {
|
|
15
|
-
id:
|
|
16
|
-
type:
|
|
10
|
+
id: slugid.nice(),
|
|
11
|
+
type: TABLE,
|
|
17
12
|
children: parseChild(childNodes)
|
|
18
13
|
};
|
|
19
14
|
}
|
|
@@ -22,18 +17,18 @@ var tableRule = function tableRule(element, parseChild) {
|
|
|
22
17
|
}
|
|
23
18
|
if (nodeName === 'TR') {
|
|
24
19
|
return {
|
|
25
|
-
id:
|
|
26
|
-
type:
|
|
20
|
+
id: slugid.nice(),
|
|
21
|
+
type: TABLE_ROW,
|
|
27
22
|
children: parseChild(childNodes)
|
|
28
23
|
};
|
|
29
24
|
}
|
|
30
25
|
if (nodeName === 'TH' || nodeName === 'TD') {
|
|
31
26
|
return {
|
|
32
|
-
id:
|
|
33
|
-
type:
|
|
27
|
+
id: slugid.nice(),
|
|
28
|
+
type: TABLE_CELL,
|
|
34
29
|
children: parseChild(childNodes)
|
|
35
30
|
};
|
|
36
31
|
}
|
|
37
32
|
return;
|
|
38
33
|
};
|
|
39
|
-
|
|
34
|
+
export default tableRule;
|
|
@@ -1,61 +1,56 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _slugid = _interopRequireDefault(require("slugid"));
|
|
9
|
-
var textRule = function textRule(element, parseChild) {
|
|
10
|
-
var nodeName = element.nodeName,
|
|
11
|
-
nodeType = element.nodeType;
|
|
1
|
+
import slugid from 'slugid';
|
|
2
|
+
const textRule = (element, parseChild) => {
|
|
3
|
+
const {
|
|
4
|
+
nodeName,
|
|
5
|
+
nodeType
|
|
6
|
+
} = element;
|
|
12
7
|
if (nodeName === 'SPAN') {
|
|
13
8
|
return {
|
|
14
|
-
id:
|
|
9
|
+
id: slugid.nice(),
|
|
15
10
|
text: element.textContent
|
|
16
11
|
};
|
|
17
12
|
}
|
|
18
13
|
if (nodeName === 'STRONG' || nodeName === 'B') {
|
|
19
14
|
return {
|
|
20
|
-
id:
|
|
15
|
+
id: slugid.nice(),
|
|
21
16
|
bold: true,
|
|
22
17
|
text: element.textContent
|
|
23
18
|
};
|
|
24
19
|
}
|
|
25
20
|
if (nodeName === 'CODE' && element.parentElement.nodeName !== 'PRE') {
|
|
26
21
|
return {
|
|
27
|
-
id:
|
|
22
|
+
id: slugid.nice(),
|
|
28
23
|
code: true,
|
|
29
24
|
text: element.textContent
|
|
30
25
|
};
|
|
31
26
|
}
|
|
32
27
|
if (nodeName === 'DEL') {
|
|
33
28
|
return {
|
|
34
|
-
id:
|
|
29
|
+
id: slugid.nice(),
|
|
35
30
|
delete: true,
|
|
36
31
|
text: element.textContent
|
|
37
32
|
};
|
|
38
33
|
}
|
|
39
34
|
if (nodeName === 'I') {
|
|
40
35
|
return {
|
|
41
|
-
id:
|
|
36
|
+
id: slugid.nice(),
|
|
42
37
|
italic: true,
|
|
43
38
|
text: element.textContent
|
|
44
39
|
};
|
|
45
40
|
}
|
|
46
41
|
if (nodeName === 'INS') {
|
|
47
42
|
return {
|
|
48
|
-
id:
|
|
43
|
+
id: slugid.nice(),
|
|
49
44
|
add: true,
|
|
50
45
|
text: element.textContent
|
|
51
46
|
};
|
|
52
47
|
}
|
|
53
48
|
if (nodeType === 3) {
|
|
54
49
|
return {
|
|
55
|
-
id:
|
|
50
|
+
id: slugid.nice(),
|
|
56
51
|
text: element.textContent
|
|
57
52
|
};
|
|
58
53
|
}
|
|
59
54
|
return;
|
|
60
55
|
};
|
|
61
|
-
|
|
56
|
+
export default textRule;
|
|
@@ -1,34 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
get: function get() {
|
|
10
|
-
return _htmlToSlate.default;
|
|
11
|
-
}
|
|
12
|
-
});
|
|
13
|
-
Object.defineProperty(exports, "mdStringToSlate", {
|
|
14
|
-
enumerable: true,
|
|
15
|
-
get: function get() {
|
|
16
|
-
return _mdToSlate.default;
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
Object.defineProperty(exports, "processor", {
|
|
20
|
-
enumerable: true,
|
|
21
|
-
get: function get() {
|
|
22
|
-
return _mdToHtml.default;
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
Object.defineProperty(exports, "slateToMdString", {
|
|
26
|
-
enumerable: true,
|
|
27
|
-
get: function get() {
|
|
28
|
-
return _slateToMd.default;
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
var _mdToSlate = _interopRequireDefault(require("./md-to-slate"));
|
|
32
|
-
var _slateToMd = _interopRequireDefault(require("./slate-to-md"));
|
|
33
|
-
var _mdToHtml = _interopRequireDefault(require("./md-to-html"));
|
|
34
|
-
var _htmlToSlate = _interopRequireDefault(require("./html-to-slate"));
|
|
1
|
+
import mdStringToSlate from './md-to-slate';
|
|
2
|
+
import slateToMdString from './slate-to-md';
|
|
3
|
+
import processor from './md-to-html';
|
|
4
|
+
import deserializeHtml from './html-to-slate';
|
|
5
|
+
export { mdStringToSlate, slateToMdString, processor,
|
|
6
|
+
// md string to html
|
|
7
|
+
deserializeHtml // html -> slate notes
|
|
8
|
+
};
|
|
@@ -1,53 +1,48 @@
|
|
|
1
|
-
|
|
1
|
+
import { unified } from 'unified';
|
|
2
|
+
import markdown from 'remark-parse';
|
|
3
|
+
import gfm from 'remark-gfm';
|
|
4
|
+
import math from 'remark-math';
|
|
5
|
+
import breaks from 'remark-breaks';
|
|
6
|
+
import remarkRehype from 'remark-rehype';
|
|
7
|
+
import mathjax from 'rehype-mathjax/browser';
|
|
8
|
+
import rehypeSlug from 'rehype-slug';
|
|
9
|
+
import rehypeRaw from 'rehype-raw';
|
|
10
|
+
import rehypeFormat from 'rehype-format';
|
|
11
|
+
import rehypeSanitize from 'rehype-sanitize';
|
|
12
|
+
import rehypeStringify from 'rehype-stringify';
|
|
13
|
+
import sanitizeSchema from './sanitize-schema';
|
|
2
14
|
|
|
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 _remarkMath = _interopRequireDefault(require("remark-math"));
|
|
12
|
-
var _remarkBreaks = _interopRequireDefault(require("remark-breaks"));
|
|
13
|
-
var _remarkRehype = _interopRequireDefault(require("remark-rehype"));
|
|
14
|
-
var _browser = _interopRequireDefault(require("rehype-mathjax/browser"));
|
|
15
|
-
var _rehypeSlug = _interopRequireDefault(require("rehype-slug"));
|
|
16
|
-
var _rehypeRaw = _interopRequireDefault(require("rehype-raw"));
|
|
17
|
-
var _rehypeFormat = _interopRequireDefault(require("rehype-format"));
|
|
18
|
-
var _rehypeSanitize = _interopRequireDefault(require("rehype-sanitize"));
|
|
19
|
-
var _rehypeStringify = _interopRequireDefault(require("rehype-stringify"));
|
|
20
|
-
var _sanitizeSchema = _interopRequireDefault(require("./sanitize-schema"));
|
|
21
15
|
// mdString -> mdast -> html ast -> html
|
|
22
|
-
|
|
16
|
+
const processor = unified()
|
|
23
17
|
// Handles markdown basic syntax
|
|
24
18
|
// https://github.com/remarkjs/remark/tree/main
|
|
25
|
-
.use(
|
|
19
|
+
.use(markdown)
|
|
26
20
|
// Handle markdown extension syntax
|
|
27
21
|
// https://github.com/remarkjs/remark-gfm
|
|
28
|
-
.use(
|
|
22
|
+
.use(gfm)
|
|
29
23
|
// https://github.com/remarkjs/remark-math
|
|
30
|
-
.use(
|
|
24
|
+
.use(math)
|
|
31
25
|
// https://github.com/remarkjs/remark-breaks
|
|
32
|
-
.use(
|
|
26
|
+
.use(breaks).use(remarkRehype, {
|
|
33
27
|
allowDangerousHtml: true
|
|
34
28
|
}) // convert mdast -> hast
|
|
35
29
|
// https://www.npmjs.com/package/rehype-mathjax
|
|
36
|
-
.use(
|
|
30
|
+
.use(mathjax, {
|
|
37
31
|
displayMath: ['$$', '$$']
|
|
38
32
|
})
|
|
39
33
|
// https://www.npmjs.com/package/rehype-raw
|
|
40
|
-
.use(
|
|
34
|
+
.use(rehypeRaw)
|
|
41
35
|
// https://www.npmjs.com/package/rehype-format
|
|
42
|
-
.use(
|
|
36
|
+
.use(rehypeFormat, {
|
|
43
37
|
blanks: ['pre', 'code']
|
|
44
38
|
})
|
|
45
39
|
// https://github.com/rehypejs/rehype-slug
|
|
46
|
-
.use(
|
|
40
|
+
.use(rehypeSlug)
|
|
47
41
|
// https://github.com/rehypejs/rehype-sanitize
|
|
48
|
-
.use(
|
|
42
|
+
.use(rehypeSanitize, sanitizeSchema)
|
|
49
43
|
// https://github.com/rehypejs/rehype/tree/main/packages/rehype-stringify
|
|
50
|
-
.use(
|
|
44
|
+
.use(rehypeStringify);
|
|
51
45
|
|
|
52
46
|
// transform rules: https://github.com/syntax-tree/mdast-util-to-hast
|
|
53
|
-
|
|
47
|
+
|
|
48
|
+
export default processor;
|