@seafile/seafile-editor 3.0.20 → 3.0.22
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/editors/slate-viewer/style.css +1 -1
- package/dist/extension/constants/element-types.js +3 -2
- package/dist/extension/constants/menus-config.js +5 -0
- package/dist/extension/plugins/code-block/menu/index.js +2 -1
- package/dist/extension/plugins/divider/helper.js +24 -0
- package/dist/extension/plugins/divider/index.js +17 -0
- package/dist/extension/plugins/divider/menu/index.js +34 -0
- package/dist/extension/plugins/divider/plugin.js +87 -0
- package/dist/extension/plugins/divider/render-elem/index.css +19 -0
- package/dist/extension/plugins/divider/render-elem/index.js +28 -0
- package/dist/extension/plugins/index.js +8 -1
- package/dist/extension/render/render-element.js +5 -0
- package/dist/extension/toolbar/header-toolbar/insert-toolbar/index.js +2 -1
- package/dist/slate-convert/html-to-slate/constants.js +3 -2
- package/dist/slate-convert/html-to-slate/rules/hr.js +23 -0
- package/dist/slate-convert/html-to-slate/rules/index.js +2 -1
- package/dist/slate-convert/md-to-slate/transform.js +1 -1
- package/dist/slate-convert/slate-to-md/transform.js +5 -1
- package/package.json +1 -1
- package/public/media/seafile-editor-font/iconfont.css +10 -6
- package/public/media/seafile-editor-font/iconfont.eot +0 -0
- package/public/media/seafile-editor-font/iconfont.svg +2 -0
- package/public/media/seafile-editor-font/iconfont.ttf +0 -0
- package/public/media/seafile-editor-font/iconfont.woff +0 -0
- package/public/media/seafile-editor-font/iconfont.woff2 +0 -0
- package/public/media/seafile-editor-font.css +10 -6
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.UNORDERED_LIST = exports.TABLE_ROW = exports.TABLE_CELL = exports.TABLE = exports.PARAGRAPH = exports.ORDERED_LIST = exports.LIST_ITEM = exports.LINK_REFERENCE = exports.LINK = exports.IMAGE = exports.HEADER6 = exports.HEADER5 = exports.HEADER4 = exports.HEADER3 = exports.HEADER2 = exports.HEADER1 = exports.HEADER = exports.FORMULA = exports.DEFINITION = exports.COLUMN = exports.CODE_LINE = exports.CODE_BLOCK = exports.CHECK_LIST_ITEM = exports.BLOCKQUOTE = void 0;
|
|
6
|
+
exports.UNORDERED_LIST = exports.TABLE_ROW = exports.TABLE_CELL = exports.TABLE = exports.PARAGRAPH = exports.ORDERED_LIST = exports.LIST_ITEM = exports.LINK_REFERENCE = exports.LINK = exports.IMAGE = exports.HEADER6 = exports.HEADER5 = exports.HEADER4 = exports.HEADER3 = exports.HEADER2 = exports.HEADER1 = exports.HEADER = exports.FORMULA = exports.DIVIDER = exports.DEFINITION = exports.COLUMN = exports.CODE_LINE = exports.CODE_BLOCK = exports.CHECK_LIST_ITEM = exports.BLOCKQUOTE = void 0;
|
|
7
7
|
const BLOCKQUOTE = exports.BLOCKQUOTE = 'blockquote';
|
|
8
8
|
const HEADER = exports.HEADER = 'header';
|
|
9
9
|
// each header type should be start with HEADER, all of justices should based on HEADER
|
|
@@ -28,4 +28,5 @@ const LINK = exports.LINK = 'link';
|
|
|
28
28
|
const FORMULA = exports.FORMULA = 'formula';
|
|
29
29
|
const COLUMN = exports.COLUMN = 'column';
|
|
30
30
|
const LINK_REFERENCE = exports.LINK_REFERENCE = 'link-reference';
|
|
31
|
-
const DEFINITION = exports.DEFINITION = 'definition';
|
|
31
|
+
const DEFINITION = exports.DEFINITION = 'definition';
|
|
32
|
+
const DIVIDER = exports.DIVIDER = 'divider';
|
|
@@ -137,5 +137,10 @@ const MENUS_CONFIG_MAP = exports.MENUS_CONFIG_MAP = {
|
|
|
137
137
|
id: "seafile_".concat(EXPAND_EDITOR),
|
|
138
138
|
iconClass: 'mdfont md-fullscreen',
|
|
139
139
|
text: 'Expand_editor'
|
|
140
|
+
},
|
|
141
|
+
[_elementTypes.DIVIDER]: {
|
|
142
|
+
id: "seafile_".concat(_elementTypes.DIVIDER),
|
|
143
|
+
iconClass: 'mdfont md-divider',
|
|
144
|
+
text: 'Divider'
|
|
140
145
|
}
|
|
141
146
|
};
|
|
@@ -20,6 +20,7 @@ const CodeBlockMenu = _ref => {
|
|
|
20
20
|
} = _ref;
|
|
21
21
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
22
22
|
const isActive = (0, _react.useMemo)(() => (0, _helpers.isInCodeBlock)(editor), [editor.selection]);
|
|
23
|
+
const disabled = (0, _helpers.isMenuDisabled)(editor, readonly);
|
|
23
24
|
const onMousedown = (0, _react.useCallback)(e => {
|
|
24
25
|
e.preventDefault();
|
|
25
26
|
isActive ? (0, _helpers.unwrapCodeBlock)(editor) : (0, _helpers.transformToCodeBlock)(editor);
|
|
@@ -27,7 +28,7 @@ const CodeBlockMenu = _ref => {
|
|
|
27
28
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
28
29
|
}, [isActive]);
|
|
29
30
|
return /*#__PURE__*/_react.default.createElement(_dropdownMenuItem.default, {
|
|
30
|
-
disabled:
|
|
31
|
+
disabled: disabled,
|
|
31
32
|
menuConfig: menuConfig,
|
|
32
33
|
className: "pr-2",
|
|
33
34
|
onClick: onMousedown
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.transformToDivider = exports.insertDivider = void 0;
|
|
7
|
+
var _slate = require("slate");
|
|
8
|
+
var _core = require("../../core");
|
|
9
|
+
var _elementTypes = require("../../constants/element-types");
|
|
10
|
+
const transformToDivider = editor => {
|
|
11
|
+
if (!editor.selection) return;
|
|
12
|
+
_slate.Transforms.setNodes(editor, {
|
|
13
|
+
type: _elementTypes.DIVIDER
|
|
14
|
+
});
|
|
15
|
+
(0, _core.focusEditor)(editor);
|
|
16
|
+
};
|
|
17
|
+
exports.transformToDivider = transformToDivider;
|
|
18
|
+
const insertDivider = editor => {
|
|
19
|
+
if (!editor.selection) return;
|
|
20
|
+
const dividerNode = (0, _core.generateElement)(_elementTypes.DIVIDER);
|
|
21
|
+
_slate.Transforms.insertNodes(editor, dividerNode);
|
|
22
|
+
(0, _core.focusEditor)(editor);
|
|
23
|
+
};
|
|
24
|
+
exports.insertDivider = insertDivider;
|
|
@@ -0,0 +1,17 @@
|
|
|
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 _elementTypes = require("../../constants/element-types");
|
|
9
|
+
var _plugin = _interopRequireDefault(require("./plugin"));
|
|
10
|
+
var _renderElem = _interopRequireDefault(require("./render-elem"));
|
|
11
|
+
const DividerPlugin = {
|
|
12
|
+
type: _elementTypes.DIVIDER,
|
|
13
|
+
nodeType: 'element',
|
|
14
|
+
editorPlugin: _plugin.default,
|
|
15
|
+
renderElements: [_renderElem.default]
|
|
16
|
+
};
|
|
17
|
+
var _default = exports.default = DividerPlugin;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _elementTypes = require("../../../constants/element-types");
|
|
11
|
+
var _helper = require("../helper");
|
|
12
|
+
var _constants = require("../../../constants");
|
|
13
|
+
var _dropdownMenuItem = _interopRequireDefault(require("../../../commons/dropdown-menu-item"));
|
|
14
|
+
const menuConfig = _constants.MENUS_CONFIG_MAP[_elementTypes.DIVIDER];
|
|
15
|
+
const DividerMenu = _ref => {
|
|
16
|
+
let {
|
|
17
|
+
readonly,
|
|
18
|
+
editor,
|
|
19
|
+
toggle
|
|
20
|
+
} = _ref;
|
|
21
|
+
const onMousedown = (0, _react.useCallback)(e => {
|
|
22
|
+
e.preventDefault();
|
|
23
|
+
(0, _helper.insertDivider)(editor);
|
|
24
|
+
toggle && toggle();
|
|
25
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
26
|
+
}, []);
|
|
27
|
+
return /*#__PURE__*/_react.default.createElement(_dropdownMenuItem.default, {
|
|
28
|
+
disabled: readonly,
|
|
29
|
+
menuConfig: menuConfig,
|
|
30
|
+
className: "pr-2",
|
|
31
|
+
onClick: onMousedown
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var _default = exports.default = DividerMenu;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _slate = require("slate");
|
|
8
|
+
var _constants = require("../../constants");
|
|
9
|
+
var _core = require("../../core");
|
|
10
|
+
var _elementTypes = require("../../constants/element-types");
|
|
11
|
+
const HR_PATTERNS = ['---', '***', '___'];
|
|
12
|
+
const withDivider = editor => {
|
|
13
|
+
const {
|
|
14
|
+
isVoid,
|
|
15
|
+
insertText,
|
|
16
|
+
normalizeNode
|
|
17
|
+
} = editor;
|
|
18
|
+
const newEditor = editor;
|
|
19
|
+
newEditor.isVoid = element => {
|
|
20
|
+
const {
|
|
21
|
+
type
|
|
22
|
+
} = element;
|
|
23
|
+
if (type === _constants.ELementTypes.DIVIDER) return true;
|
|
24
|
+
return isVoid(element);
|
|
25
|
+
};
|
|
26
|
+
newEditor.insertText = text => {
|
|
27
|
+
const {
|
|
28
|
+
selection
|
|
29
|
+
} = newEditor;
|
|
30
|
+
if (!selection || !_slate.Range.isCollapsed(selection)) {
|
|
31
|
+
insertText(text);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const [blockEntry] = _slate.Editor.nodes(newEditor, {
|
|
35
|
+
at: selection,
|
|
36
|
+
match: n => _slate.Element.isElement(n) && n.type === _constants.ELementTypes.PARAGRAPH
|
|
37
|
+
});
|
|
38
|
+
if (!blockEntry) {
|
|
39
|
+
insertText(text);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const [blockNode, blockPath] = blockEntry;
|
|
43
|
+
const blockText = _slate.Node.string(blockNode);
|
|
44
|
+
const nextText = blockText + text;
|
|
45
|
+
if (HR_PATTERNS.includes(nextText)) {
|
|
46
|
+
_slate.Editor.withoutNormalizing(newEditor, () => {
|
|
47
|
+
_slate.Transforms.removeNodes(newEditor, {
|
|
48
|
+
at: blockPath
|
|
49
|
+
});
|
|
50
|
+
_slate.Transforms.insertNodes(newEditor, (0, _core.generateEmptyElement)(_constants.ELementTypes.DIVIDER), {
|
|
51
|
+
at: blockPath
|
|
52
|
+
});
|
|
53
|
+
const nextPath = _slate.Path.next(blockPath);
|
|
54
|
+
_slate.Transforms.insertNodes(newEditor, (0, _core.generateEmptyElement)(_constants.ELementTypes.PARAGRAPH), {
|
|
55
|
+
at: nextPath
|
|
56
|
+
});
|
|
57
|
+
_slate.Transforms.select(newEditor, _slate.Editor.start(newEditor, nextPath));
|
|
58
|
+
});
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
return insertText(text);
|
|
62
|
+
};
|
|
63
|
+
newEditor.normalizeNode = _ref => {
|
|
64
|
+
let [node, path] = _ref;
|
|
65
|
+
if (node.type === _elementTypes.DIVIDER) {
|
|
66
|
+
const isLast = (0, _core.isLastNode)(newEditor, node);
|
|
67
|
+
if (isLast) {
|
|
68
|
+
const paragraph = (0, _core.generateEmptyElement)(_elementTypes.PARAGRAPH);
|
|
69
|
+
_slate.Transforms.insertNodes(newEditor, paragraph, {
|
|
70
|
+
at: [path[0] + 1]
|
|
71
|
+
});
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const isFirst = (0, _core.isFirstNode)(newEditor, node);
|
|
75
|
+
if (isFirst) {
|
|
76
|
+
const paragraph = (0, _core.generateEmptyElement)(_elementTypes.PARAGRAPH);
|
|
77
|
+
_slate.Transforms.insertNodes(newEditor, paragraph, {
|
|
78
|
+
at: [path[0]]
|
|
79
|
+
});
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return normalizeNode([node, path]);
|
|
84
|
+
};
|
|
85
|
+
return newEditor;
|
|
86
|
+
};
|
|
87
|
+
var _default = exports.default = withDivider;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
.sf-divider-container {
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
cursor: pointer;
|
|
5
|
+
height: 13px;
|
|
6
|
+
width: 100%;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.sf-divider-container.is-selected {
|
|
10
|
+
border-radius: 4px;
|
|
11
|
+
background-color: Highlight;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.sf-divider {
|
|
15
|
+
border-top: 1px solid #cccccc;
|
|
16
|
+
width: 100%;
|
|
17
|
+
height: 0;
|
|
18
|
+
margin: 5px 0;
|
|
19
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
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 _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _slateReact = require("slate-react");
|
|
10
|
+
require("./index.css");
|
|
11
|
+
/* eslint-disable react-hooks/rules-of-hooks */
|
|
12
|
+
|
|
13
|
+
const renderDivider = _ref => {
|
|
14
|
+
let {
|
|
15
|
+
attributes,
|
|
16
|
+
children,
|
|
17
|
+
element
|
|
18
|
+
} = _ref;
|
|
19
|
+
const isSelected = (0, _slateReact.useSelected)();
|
|
20
|
+
return /*#__PURE__*/_react.default.createElement("div", Object.assign({
|
|
21
|
+
"data-id": element.id,
|
|
22
|
+
className: "sf-divider-container ".concat(isSelected ? 'is-selected' : '')
|
|
23
|
+
}, attributes), /*#__PURE__*/_react.default.createElement("div", {
|
|
24
|
+
className: "sf-divider",
|
|
25
|
+
contentEditable: false
|
|
26
|
+
}), children);
|
|
27
|
+
};
|
|
28
|
+
var _default = exports.default = renderDivider;
|
|
@@ -34,6 +34,12 @@ Object.defineProperty(exports, "DefinitionPlugin", {
|
|
|
34
34
|
return _definition.default;
|
|
35
35
|
}
|
|
36
36
|
});
|
|
37
|
+
Object.defineProperty(exports, "DividerPlugin", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
get: function () {
|
|
40
|
+
return _divider.default;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
37
43
|
Object.defineProperty(exports, "FormulaPlugin", {
|
|
38
44
|
enumerable: true,
|
|
39
45
|
get: function () {
|
|
@@ -124,7 +130,8 @@ var _markdown = _interopRequireDefault(require("./markdown"));
|
|
|
124
130
|
var _html = _interopRequireDefault(require("./html"));
|
|
125
131
|
var _linkReference = _interopRequireDefault(require("./link-reference"));
|
|
126
132
|
var _definition = _interopRequireDefault(require("./definition"));
|
|
133
|
+
var _divider = _interopRequireDefault(require("./divider"));
|
|
127
134
|
const Plugins = [_paragraph.default, _textStyle.default, _header.default, _image.default, _checkList.default, _list.default, _codeBlock.default, _table.default, _blockquote.default, _link.default, _formula.default, _markdown.default, _html.default, _column.default,
|
|
128
135
|
// put at the end
|
|
129
|
-
_nodeId.default, _linkReference.default, _definition.default];
|
|
136
|
+
_nodeId.default, _linkReference.default, _definition.default, _divider.default];
|
|
130
137
|
var _default = exports.default = Plugins;
|
|
@@ -112,6 +112,11 @@ const SlateElement = _ref => {
|
|
|
112
112
|
const [renderColumn] = _plugins.ColumnPlugin.renderElements;
|
|
113
113
|
return renderColumn(props);
|
|
114
114
|
}
|
|
115
|
+
case ElementType.DIVIDER:
|
|
116
|
+
{
|
|
117
|
+
const [renderDivider] = _plugins.DividerPlugin.renderElements;
|
|
118
|
+
return renderDivider(props, editor);
|
|
119
|
+
}
|
|
115
120
|
default:
|
|
116
121
|
{
|
|
117
122
|
const [renderParagraph] = _plugins.ParagraphPlugin.renderElements;
|
|
@@ -17,6 +17,7 @@ var _menu3 = _interopRequireDefault(require("../../../plugins/code-block/menu"))
|
|
|
17
17
|
var _menu4 = _interopRequireDefault(require("../../../plugins/formula/menu"));
|
|
18
18
|
var _menu5 = _interopRequireDefault(require("../../../plugins/column/menu"));
|
|
19
19
|
var _constants = require("../../../../constants");
|
|
20
|
+
var _menu6 = _interopRequireDefault(require("../../../plugins/divider/menu"));
|
|
20
21
|
require("./style.css");
|
|
21
22
|
const InsertToolbar = _ref => {
|
|
22
23
|
let {
|
|
@@ -97,6 +98,6 @@ const InsertToolbar = _ref => {
|
|
|
97
98
|
style: {
|
|
98
99
|
maxHeight: window.innerHeight - bottom - 100
|
|
99
100
|
}
|
|
100
|
-
}, /*#__PURE__*/_react.default.createElement(_menu.default, props), /*#__PURE__*/_react.default.createElement(_menu2.default, props), /*#__PURE__*/_react.default.createElement(_menu3.default, props), isSupportFormula && /*#__PURE__*/_react.default.createElement(_menu4.default, props), isSupportColumn && /*#__PURE__*/_react.default.createElement(_menu5.default, props))));
|
|
101
|
+
}, /*#__PURE__*/_react.default.createElement(_menu.default, props), /*#__PURE__*/_react.default.createElement(_menu2.default, props), /*#__PURE__*/_react.default.createElement(_menu3.default, props), /*#__PURE__*/_react.default.createElement(_menu6.default, props), isSupportFormula && /*#__PURE__*/_react.default.createElement(_menu4.default, props), isSupportColumn && /*#__PURE__*/_react.default.createElement(_menu5.default, props))));
|
|
101
102
|
};
|
|
102
103
|
var _default = exports.default = InsertToolbar;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.UNORDERED_LIST = exports.TOP_LEVEL_TYPES = exports.TABLE_ROW = exports.TABLE_CELL = exports.TABLE = exports.PARAGRAPH = exports.ORDERED_LIST = exports.LIST_ITEM = exports.LINK = exports.INLINE_LEVEL_TYPES = exports.IMAGE = exports.HEADER_TYPE_MAP = exports.HEADER_LIST = exports.HEADER6 = exports.HEADER5 = exports.HEADER4 = exports.HEADER3 = exports.HEADER2 = exports.HEADER1 = exports.HEADER = exports.FORMULA = exports.COLUMN = exports.CODE_LINE = exports.CODE_BLOCK = exports.CHECK_LIST_ITEM = exports.BLOCKQUOTE = void 0;
|
|
6
|
+
exports.UNORDERED_LIST = exports.TOP_LEVEL_TYPES = exports.TABLE_ROW = exports.TABLE_CELL = exports.TABLE = exports.PARAGRAPH = exports.ORDERED_LIST = exports.LIST_ITEM = exports.LINK = exports.INLINE_LEVEL_TYPES = exports.IMAGE = exports.HEADER_TYPE_MAP = exports.HEADER_LIST = exports.HEADER6 = exports.HEADER5 = exports.HEADER4 = exports.HEADER3 = exports.HEADER2 = exports.HEADER1 = exports.HEADER = exports.FORMULA = exports.DIVIDER = exports.COLUMN = exports.CODE_LINE = exports.CODE_BLOCK = exports.CHECK_LIST_ITEM = exports.BLOCKQUOTE = void 0;
|
|
7
7
|
const BLOCKQUOTE = exports.BLOCKQUOTE = 'blockquote';
|
|
8
8
|
const HEADER = exports.HEADER = 'header';
|
|
9
9
|
// each header type should be start with HEADER, all of justices should based on HEADER
|
|
@@ -27,7 +27,8 @@ const IMAGE = exports.IMAGE = 'image';
|
|
|
27
27
|
const LINK = exports.LINK = 'link';
|
|
28
28
|
const FORMULA = exports.FORMULA = 'formula';
|
|
29
29
|
const COLUMN = exports.COLUMN = 'column';
|
|
30
|
-
const
|
|
30
|
+
const DIVIDER = exports.DIVIDER = 'divider';
|
|
31
|
+
const TOP_LEVEL_TYPES = exports.TOP_LEVEL_TYPES = [BLOCKQUOTE, HEADER1, HEADER2, HEADER3, HEADER4, HEADER5, HEADER6, ORDERED_LIST, UNORDERED_LIST, CHECK_LIST_ITEM, PARAGRAPH, CODE_BLOCK, TABLE, DIVIDER];
|
|
31
32
|
const INLINE_LEVEL_TYPES = exports.INLINE_LEVEL_TYPES = [IMAGE, LINK];
|
|
32
33
|
const HEADER_LIST = exports.HEADER_LIST = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];
|
|
33
34
|
const HEADER_TYPE_MAP = exports.HEADER_TYPE_MAP = {
|
|
@@ -0,0 +1,23 @@
|
|
|
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 _slugid = _interopRequireDefault(require("slugid"));
|
|
9
|
+
var _constants = require("../constants");
|
|
10
|
+
const hrRule = element => {
|
|
11
|
+
if (element.nodeName === 'HR') {
|
|
12
|
+
return {
|
|
13
|
+
id: _slugid.default.nice(),
|
|
14
|
+
type: _constants.DIVIDER,
|
|
15
|
+
children: [{
|
|
16
|
+
id: _slugid.default.nice(),
|
|
17
|
+
text: ''
|
|
18
|
+
}]
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
return;
|
|
22
|
+
};
|
|
23
|
+
var _default = exports.default = hrRule;
|
|
@@ -8,11 +8,12 @@ exports.default = void 0;
|
|
|
8
8
|
var _blockquote = _interopRequireDefault(require("./blockquote"));
|
|
9
9
|
var _codeBlock = _interopRequireDefault(require("./code-block"));
|
|
10
10
|
var _header = _interopRequireDefault(require("./header"));
|
|
11
|
+
var _hr = _interopRequireDefault(require("./hr"));
|
|
11
12
|
var _image = _interopRequireDefault(require("./image"));
|
|
12
13
|
var _link = _interopRequireDefault(require("./link"));
|
|
13
14
|
var _list = _interopRequireDefault(require("./list"));
|
|
14
15
|
var _paragraph = _interopRequireDefault(require("./paragraph"));
|
|
15
16
|
var _table = _interopRequireDefault(require("./table"));
|
|
16
17
|
var _text = _interopRequireDefault(require("./text"));
|
|
17
|
-
const rules = [_blockquote.default, _codeBlock.default, _header.default, _image.default, _link.default, _list.default, _table.default, _paragraph.default, _text.default];
|
|
18
|
+
const rules = [_blockquote.default, _codeBlock.default, _header.default, _image.default, _link.default, _list.default, _table.default, _hr.default, _paragraph.default, _text.default];
|
|
18
19
|
var _default = exports.default = rules;
|
|
@@ -339,6 +339,9 @@ const transformAsParagraph = node => {
|
|
|
339
339
|
};
|
|
340
340
|
return transformParagraph(paragraph);
|
|
341
341
|
};
|
|
342
|
+
const transformDivider = () => ({
|
|
343
|
+
type: 'thematicBreak'
|
|
344
|
+
});
|
|
342
345
|
const elementHandlers = {
|
|
343
346
|
'paragraph': transformParagraph,
|
|
344
347
|
'header1': transformHeader,
|
|
@@ -353,7 +356,8 @@ const elementHandlers = {
|
|
|
353
356
|
'ordered_list': transformList,
|
|
354
357
|
'unordered_list': transformList,
|
|
355
358
|
'code_block': transformCodeBlock,
|
|
356
|
-
'formula': transformFormula
|
|
359
|
+
'formula': transformFormula,
|
|
360
|
+
'divider': transformDivider
|
|
357
361
|
};
|
|
358
362
|
const formatSlateToMd = children => {
|
|
359
363
|
// const validChildren = children.filter(child => elementHandlers[child.type]);
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
@font-face {
|
|
2
2
|
font-family: "mdfont"; /* Project id 5080543 */
|
|
3
|
-
src: url('iconfont.eot?t=
|
|
4
|
-
src: url('iconfont.eot?t=
|
|
5
|
-
url('iconfont.woff2?t=
|
|
6
|
-
url('iconfont.woff?t=
|
|
7
|
-
url('iconfont.ttf?t=
|
|
8
|
-
url('iconfont.svg?t=
|
|
3
|
+
src: url('iconfont.eot?t=1773737826719'); /* IE9 */
|
|
4
|
+
src: url('iconfont.eot?t=1773737826719#iefix') format('embedded-opentype'), /* IE6-IE8 */
|
|
5
|
+
url('iconfont.woff2?t=1773737826719') format('woff2'),
|
|
6
|
+
url('iconfont.woff?t=1773737826719') format('woff'),
|
|
7
|
+
url('iconfont.ttf?t=1773737826719') format('truetype'),
|
|
8
|
+
url('iconfont.svg?t=1773737826719#mdfont') format('svg');
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
.mdfont {
|
|
@@ -16,6 +16,10 @@
|
|
|
16
16
|
-moz-osx-font-smoothing: grayscale;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
.md-divider:before {
|
|
20
|
+
content: "\e605";
|
|
21
|
+
}
|
|
22
|
+
|
|
19
23
|
.md-arrow-down:before {
|
|
20
24
|
content: "\e6ce";
|
|
21
25
|
}
|
|
Binary file
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
/>
|
|
15
15
|
<missing-glyph />
|
|
16
16
|
|
|
17
|
+
<glyph glyph-name="divider" unicode="" d="M960 432v-96H64v96h896z" horiz-adv-x="1024" />
|
|
18
|
+
|
|
17
19
|
<glyph glyph-name="arrow-down" unicode="" d="M513.92 128l385.952 385.92L832 581.824l-318.08-318.08-318.048 318.08L128 513.92 513.92 128z" horiz-adv-x="1024" />
|
|
18
20
|
|
|
19
21
|
<glyph glyph-name="arrow-up" unicode="" d="M513.92 640l385.952-385.92-67.84-67.904-318.08 318.08-318.08-318.08-67.84 67.904L513.92 640z" horiz-adv-x="1024" />
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
@font-face {
|
|
2
2
|
font-family: "mdfont";
|
|
3
3
|
/* Project id 5080543 */
|
|
4
|
-
src: url('./seafile-editor-font/iconfont.eot?t=
|
|
4
|
+
src: url('./seafile-editor-font/iconfont.eot?t=1773737826719');
|
|
5
5
|
/* IE9 */
|
|
6
|
-
src: url('./seafile-editor-font/iconfont.eot?t=
|
|
6
|
+
src: url('./seafile-editor-font/iconfont.eot?t=1773737826719#iefix') format('embedded-opentype'),
|
|
7
7
|
/* IE6-IE8 */
|
|
8
|
-
url('./seafile-editor-font/iconfont.woff2?t=
|
|
9
|
-
url('./seafile-editor-font/iconfont.woff?t=
|
|
10
|
-
url('./seafile-editor-font/iconfont.ttf?t=
|
|
11
|
-
url('./seafile-editor-font/iconfont.svg?t=
|
|
8
|
+
url('./seafile-editor-font/iconfont.woff2?t=1773737826719') format('woff2'),
|
|
9
|
+
url('./seafile-editor-font/iconfont.woff?t=1773737826719') format('woff'),
|
|
10
|
+
url('./seafile-editor-font/iconfont.ttf?t=1773737826719') format('truetype'),
|
|
11
|
+
url('./seafile-editor-font/iconfont.svg?t=1773737826719#mdfont') format('svg');
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
.mdfont {
|
|
@@ -19,6 +19,10 @@
|
|
|
19
19
|
-moz-osx-font-smoothing: grayscale;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
.md-divider:before {
|
|
23
|
+
content: "\e605";
|
|
24
|
+
}
|
|
25
|
+
|
|
22
26
|
.md-arrow-down:before {
|
|
23
27
|
content: "\e6ce";
|
|
24
28
|
}
|