dtable-ui-component 0.1.61 → 0.1.65
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/es/components/cell-formatter/long-text-formatter.js +15 -1
- package/es/utils/normalize-long-text-value.js +76 -49
- package/es/utils/slate2markdown/core.js +172 -0
- package/es/utils/slate2markdown/deserialize.js +645 -0
- package/es/utils/slate2markdown/index.js +4 -0
- package/es/utils/slate2markdown/markdown2html.js +43 -0
- package/es/utils/slate2markdown/serialize.js +415 -0
- package/es/utils/slate2markdown/unified.js +470 -0
- package/es/utils/slate2markdown/vfile.js +48 -0
- package/lib/components/cell-formatter/long-text-formatter.js +15 -1
- package/lib/utils/normalize-long-text-value.js +78 -49
- package/lib/utils/slate2markdown/core.js +172 -0
- package/lib/utils/slate2markdown/deserialize.js +625 -0
- package/lib/utils/slate2markdown/index.js +16 -0
- package/lib/utils/slate2markdown/markdown2html.js +62 -0
- package/lib/utils/slate2markdown/serialize.js +368 -0
- package/lib/utils/slate2markdown/unified.js +470 -0
- package/lib/utils/slate2markdown/vfile.js +48 -0
- package/package.json +23 -4
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
|
|
2
|
+
|
|
3
|
+
var unified = require('./unified');
|
|
4
|
+
|
|
5
|
+
var stringify = require('remark-stringify');
|
|
6
|
+
|
|
7
|
+
var processor = unified().use(stringify, {
|
|
8
|
+
rule: '-',
|
|
9
|
+
ruleSpaces: false,
|
|
10
|
+
listItemIndent: 1,
|
|
11
|
+
bullet: '*',
|
|
12
|
+
commonmark: true,
|
|
13
|
+
fences: true
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
function _applyMark(node, markString) {
|
|
17
|
+
switch (markString) {
|
|
18
|
+
case 'BOLD':
|
|
19
|
+
return {
|
|
20
|
+
type: 'strong',
|
|
21
|
+
children: [node]
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
case 'ITALIC':
|
|
25
|
+
return {
|
|
26
|
+
type: 'emphasis',
|
|
27
|
+
children: [node]
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
case 'CODE':
|
|
31
|
+
return {
|
|
32
|
+
type: 'inlineCode',
|
|
33
|
+
value: node.value
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
default:
|
|
37
|
+
console.log('unknown mark string: ' + markString);
|
|
38
|
+
return node;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/*
|
|
42
|
+
object: text
|
|
43
|
+
leaves:
|
|
44
|
+
- text: 'Hello '
|
|
45
|
+
marks: []
|
|
46
|
+
- text: World
|
|
47
|
+
marks:
|
|
48
|
+
- type: BOLD
|
|
49
|
+
|
|
50
|
+
--->
|
|
51
|
+
Hello **World**
|
|
52
|
+
*/
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
function _text2MdNodes(node) {
|
|
56
|
+
var mdNodes = [];
|
|
57
|
+
|
|
58
|
+
var _iterator = _createForOfIteratorHelper(node.leaves),
|
|
59
|
+
_step;
|
|
60
|
+
|
|
61
|
+
try {
|
|
62
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
63
|
+
var leaf = _step.value;
|
|
64
|
+
var mdNode = {
|
|
65
|
+
type: 'text',
|
|
66
|
+
value: leaf.text
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
var _iterator2 = _createForOfIteratorHelper(leaf.marks),
|
|
70
|
+
_step2;
|
|
71
|
+
|
|
72
|
+
try {
|
|
73
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
74
|
+
var mark = _step2.value;
|
|
75
|
+
mdNode = _applyMark(mdNode, mark.type);
|
|
76
|
+
}
|
|
77
|
+
} catch (err) {
|
|
78
|
+
_iterator2.e(err);
|
|
79
|
+
} finally {
|
|
80
|
+
_iterator2.f();
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
mdNodes.push(mdNode);
|
|
84
|
+
}
|
|
85
|
+
} catch (err) {
|
|
86
|
+
_iterator.e(err);
|
|
87
|
+
} finally {
|
|
88
|
+
_iterator.f();
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return mdNodes;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function _image2MdNode(node) {
|
|
95
|
+
if (node.data.height || node.data.width) {
|
|
96
|
+
var text = '<img ';
|
|
97
|
+
|
|
98
|
+
for (var key in node.data) {
|
|
99
|
+
text = text + key + '="' + node.data[key] + '" ';
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
text += '/>';
|
|
103
|
+
return [{
|
|
104
|
+
type: 'html',
|
|
105
|
+
value: text
|
|
106
|
+
}];
|
|
107
|
+
} else {
|
|
108
|
+
return {
|
|
109
|
+
type: 'image',
|
|
110
|
+
url: node.data.src,
|
|
111
|
+
alt: node.data.alt ? node.data.alt : null,
|
|
112
|
+
title: node.data.title ? node.data.title : null
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
function addChildNodeOrNodes(children, childNodeOrNodes) {
|
|
118
|
+
if (childNodeOrNodes instanceof Array) {
|
|
119
|
+
childNodeOrNodes.map(function (item) {
|
|
120
|
+
return children.push(item);
|
|
121
|
+
});
|
|
122
|
+
} else {
|
|
123
|
+
if (childNodeOrNodes !== undefined) children.push(childNodeOrNodes);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
function parseChildren(node) {
|
|
128
|
+
var children = [];
|
|
129
|
+
|
|
130
|
+
var _iterator3 = _createForOfIteratorHelper(node.nodes),
|
|
131
|
+
_step3;
|
|
132
|
+
|
|
133
|
+
try {
|
|
134
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
135
|
+
var child = _step3.value;
|
|
136
|
+
|
|
137
|
+
var ret = _slateNodeToMD(child);
|
|
138
|
+
|
|
139
|
+
addChildNodeOrNodes(children, ret);
|
|
140
|
+
}
|
|
141
|
+
} catch (err) {
|
|
142
|
+
_iterator3.e(err);
|
|
143
|
+
} finally {
|
|
144
|
+
_iterator3.f();
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return children;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
function _slateNodeToMD(node) {
|
|
151
|
+
if (node.object == 'block') {
|
|
152
|
+
var mdNodes;
|
|
153
|
+
|
|
154
|
+
switch (node.type) {
|
|
155
|
+
case 'paragraph':
|
|
156
|
+
mdNodes = parseChildren(node);
|
|
157
|
+
return {
|
|
158
|
+
type: 'paragraph',
|
|
159
|
+
children: mdNodes
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
case 'header_one':
|
|
163
|
+
mdNodes = parseChildren(node);
|
|
164
|
+
return {
|
|
165
|
+
type: 'heading',
|
|
166
|
+
depth: 1,
|
|
167
|
+
children: mdNodes
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
case 'header_two':
|
|
171
|
+
mdNodes = parseChildren(node);
|
|
172
|
+
return {
|
|
173
|
+
type: 'heading',
|
|
174
|
+
depth: 2,
|
|
175
|
+
children: mdNodes
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
case 'header_three':
|
|
179
|
+
mdNodes = parseChildren(node);
|
|
180
|
+
return {
|
|
181
|
+
type: 'heading',
|
|
182
|
+
depth: 3,
|
|
183
|
+
children: mdNodes
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
case 'header_four':
|
|
187
|
+
mdNodes = parseChildren(node);
|
|
188
|
+
return {
|
|
189
|
+
type: 'heading',
|
|
190
|
+
depth: 4,
|
|
191
|
+
children: mdNodes
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
case 'header_five':
|
|
195
|
+
mdNodes = parseChildren(node);
|
|
196
|
+
return {
|
|
197
|
+
type: 'heading',
|
|
198
|
+
depth: 5,
|
|
199
|
+
children: mdNodes
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
case 'header_six':
|
|
203
|
+
mdNodes = parseChildren(node);
|
|
204
|
+
return {
|
|
205
|
+
type: 'heading',
|
|
206
|
+
depth: 6,
|
|
207
|
+
children: mdNodes
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
case 'hr':
|
|
211
|
+
return {
|
|
212
|
+
type: 'thematicBreak'
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
case 'ordered_list':
|
|
216
|
+
mdNodes = parseChildren(node);
|
|
217
|
+
var loose = false;
|
|
218
|
+
|
|
219
|
+
var _iterator4 = _createForOfIteratorHelper(mdNodes),
|
|
220
|
+
_step4;
|
|
221
|
+
|
|
222
|
+
try {
|
|
223
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
224
|
+
var _node = _step4.value;
|
|
225
|
+
|
|
226
|
+
if (_node.loose == true) {
|
|
227
|
+
loose = true;
|
|
228
|
+
break;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
} catch (err) {
|
|
232
|
+
_iterator4.e(err);
|
|
233
|
+
} finally {
|
|
234
|
+
_iterator4.f();
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
return {
|
|
238
|
+
type: 'list',
|
|
239
|
+
ordered: true,
|
|
240
|
+
start: 1,
|
|
241
|
+
loose: loose,
|
|
242
|
+
children: mdNodes
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
case 'unordered_list':
|
|
246
|
+
mdNodes = parseChildren(node);
|
|
247
|
+
var loose = false;
|
|
248
|
+
|
|
249
|
+
var _iterator5 = _createForOfIteratorHelper(mdNodes),
|
|
250
|
+
_step5;
|
|
251
|
+
|
|
252
|
+
try {
|
|
253
|
+
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
254
|
+
var _node2 = _step5.value;
|
|
255
|
+
|
|
256
|
+
if (_node2.loose === true) {
|
|
257
|
+
loose = true;
|
|
258
|
+
break;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
} catch (err) {
|
|
262
|
+
_iterator5.e(err);
|
|
263
|
+
} finally {
|
|
264
|
+
_iterator5.f();
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
return {
|
|
268
|
+
type: 'list',
|
|
269
|
+
ordered: false,
|
|
270
|
+
start: 1,
|
|
271
|
+
loose: loose,
|
|
272
|
+
children: mdNodes
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
case 'list_item':
|
|
276
|
+
mdNodes = parseChildren(node);
|
|
277
|
+
var loose = false;
|
|
278
|
+
|
|
279
|
+
if (mdNodes) {
|
|
280
|
+
if (mdNodes.length == 1) {
|
|
281
|
+
loose = false;
|
|
282
|
+
} else if (mdNodes.length == 2 && mdNodes[1].type == 'list') {
|
|
283
|
+
loose = false;
|
|
284
|
+
} else {
|
|
285
|
+
loose = true;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
return {
|
|
290
|
+
type: 'listItem',
|
|
291
|
+
loose: loose,
|
|
292
|
+
checked: node.data.checked !== undefined ? node.data.checked : null,
|
|
293
|
+
children: mdNodes
|
|
294
|
+
};
|
|
295
|
+
|
|
296
|
+
case 'code_block':
|
|
297
|
+
mdNodes = parseChildren(node);
|
|
298
|
+
return {
|
|
299
|
+
type: 'code',
|
|
300
|
+
lang: node.data.syntax ? node.data.syntax : null,
|
|
301
|
+
value: mdNodes.join('')
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
case 'code_line':
|
|
305
|
+
return node.nodes[0].leaves[0].text + '\n';
|
|
306
|
+
|
|
307
|
+
case 'table':
|
|
308
|
+
mdNodes = parseChildren(node);
|
|
309
|
+
return {
|
|
310
|
+
type: 'table',
|
|
311
|
+
align: node.data.align ? node.data.align : null,
|
|
312
|
+
children: mdNodes
|
|
313
|
+
};
|
|
314
|
+
|
|
315
|
+
case 'table_row':
|
|
316
|
+
mdNodes = parseChildren(node);
|
|
317
|
+
return {
|
|
318
|
+
type: 'tableRow',
|
|
319
|
+
children: mdNodes
|
|
320
|
+
};
|
|
321
|
+
|
|
322
|
+
case 'table_cell':
|
|
323
|
+
mdNodes = parseChildren(node);
|
|
324
|
+
return {
|
|
325
|
+
type: 'tableCell',
|
|
326
|
+
children: mdNodes
|
|
327
|
+
};
|
|
328
|
+
|
|
329
|
+
case 'blockquote':
|
|
330
|
+
mdNodes = parseChildren(node);
|
|
331
|
+
return {
|
|
332
|
+
type: 'blockquote',
|
|
333
|
+
children: mdNodes
|
|
334
|
+
};
|
|
335
|
+
|
|
336
|
+
case 'html_block':
|
|
337
|
+
return {
|
|
338
|
+
type: 'html',
|
|
339
|
+
value: node.data.html
|
|
340
|
+
};
|
|
341
|
+
|
|
342
|
+
default:
|
|
343
|
+
// turn the block to paragraph default when it`s type is unknown
|
|
344
|
+
mdNodes = parseChildren(node);
|
|
345
|
+
return {
|
|
346
|
+
type: 'paragraph',
|
|
347
|
+
children: mdNodes
|
|
348
|
+
};
|
|
349
|
+
}
|
|
350
|
+
} else if (node.object == 'text') {
|
|
351
|
+
return _text2MdNodes(node);
|
|
352
|
+
} else if (node.object == 'inline') {
|
|
353
|
+
var mdNodes;
|
|
354
|
+
|
|
355
|
+
switch (node.type) {
|
|
356
|
+
case 'image':
|
|
357
|
+
return _image2MdNode(node);
|
|
358
|
+
|
|
359
|
+
case 'link':
|
|
360
|
+
mdNodes = parseChildren(node);
|
|
361
|
+
return {
|
|
362
|
+
type: 'link',
|
|
363
|
+
url: node.data.href,
|
|
364
|
+
title: node.data.title ? node.data.title : null,
|
|
365
|
+
children: mdNodes
|
|
366
|
+
};
|
|
367
|
+
|
|
368
|
+
case 'html_block':
|
|
369
|
+
return {
|
|
370
|
+
type: 'html',
|
|
371
|
+
value: node.data.html
|
|
372
|
+
};
|
|
373
|
+
// turn inlines to text default, when there is no node.type
|
|
374
|
+
|
|
375
|
+
default:
|
|
376
|
+
return _text2MdNodes(node);
|
|
377
|
+
}
|
|
378
|
+
} else {
|
|
379
|
+
// turn the node to text default when it`s type neither is inline, block or text
|
|
380
|
+
return _text2MdNodes(node);
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* @param value : a JSON object of editor value
|
|
385
|
+
* @returns markdownContent
|
|
386
|
+
*/
|
|
387
|
+
|
|
388
|
+
|
|
389
|
+
function serialize(value) {
|
|
390
|
+
var document = value.document;
|
|
391
|
+
var children = [];
|
|
392
|
+
|
|
393
|
+
var _iterator6 = _createForOfIteratorHelper(document.nodes),
|
|
394
|
+
_step6;
|
|
395
|
+
|
|
396
|
+
try {
|
|
397
|
+
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
398
|
+
var child = _step6.value;
|
|
399
|
+
addChildNodeOrNodes(children, _slateNodeToMD(child));
|
|
400
|
+
}
|
|
401
|
+
} catch (err) {
|
|
402
|
+
_iterator6.e(err);
|
|
403
|
+
} finally {
|
|
404
|
+
_iterator6.f();
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
var root = {
|
|
408
|
+
type: 'root',
|
|
409
|
+
children: children
|
|
410
|
+
};
|
|
411
|
+
var content = processor.stringify(root);
|
|
412
|
+
return content;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
export { serialize };
|