@voiceflow/slate-serializer 1.5.1 → 1.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -33,15 +33,23 @@ const serializeTextNode = (node) => {
|
|
|
33
33
|
const isStrikeThrough = node[base_types_1.Text.TextProperty.STRIKE_THROUGH];
|
|
34
34
|
const fontWeight = node[base_types_1.Text.TextProperty.FONT_WEIGHT];
|
|
35
35
|
let { text } = node;
|
|
36
|
+
if (!text.trim())
|
|
37
|
+
return text;
|
|
38
|
+
// Extract leading and trailing whitespaces
|
|
39
|
+
const leadingWhitespace = text.match(/^\s+/) || '';
|
|
40
|
+
const trailingWhitespace = text.match(/\s+$/) || '';
|
|
41
|
+
// Trim the text to remove leading and trailing whitespaces
|
|
42
|
+
text = text.trim();
|
|
36
43
|
if (isItalic)
|
|
37
|
-
text =
|
|
44
|
+
text = `*${text}*`;
|
|
38
45
|
if (isUnderline)
|
|
39
46
|
text = `<u>${text}</u>`;
|
|
40
47
|
if (isStrikeThrough)
|
|
41
48
|
text = `~~${text}~~`;
|
|
42
49
|
if (fontWeight)
|
|
43
50
|
text = `**${text}**`;
|
|
44
|
-
|
|
51
|
+
// Add the leading and trailing whitespaces back to the outside of the markers
|
|
52
|
+
return `${leadingWhitespace}${text}${trailingWhitespace}`;
|
|
45
53
|
};
|
|
46
54
|
const serializeLinkElement = (node) => {
|
|
47
55
|
const children = node.children.map(serializeNodeFactory());
|
|
@@ -58,6 +66,9 @@ const serializeElementNode = (node) => {
|
|
|
58
66
|
const serializeNodeFactory = () => (node) =>
|
|
59
67
|
// eslint-disable-next-line no-nested-ternary
|
|
60
68
|
Slate.Text.isText(node) ? serializeTextNode(node) : Slate.Element.isElement(node) ? serializeElementNode(node) : '';
|
|
61
|
-
const serializeToMarkdown = (content) => content
|
|
69
|
+
const serializeToMarkdown = (content) => content
|
|
70
|
+
.map(serializeNodeFactory())
|
|
71
|
+
.join('\n')
|
|
72
|
+
.replace(/\n{3,}/g, (match) => `\n${'<br/>'.repeat(match.length - 2)}\n\n`);
|
|
62
73
|
exports.serializeToMarkdown = serializeToMarkdown;
|
|
63
74
|
//# sourceMappingURL=markdown.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.cjs","sourceRoot":"","sources":["../../../src/serializers/markdown.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAuD;AACvD,6CAA+B;AAE/B,sCAA6D;AAE7D,MAAM,iBAAiB,GAAG,CAAC,IAAmB,EAAU,EAAE;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IAEvD,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAEpB,IAAI,QAAQ;QAAE,IAAI,GAAG,IAAI,IAAI,GAAG,CAAC;IACjC,IAAI,WAAW;QAAE,IAAI,GAAG,MAAM,IAAI,MAAM,CAAC;IACzC,IAAI,eAAe;QAAE,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC;IAC1C,IAAI,UAAU;QAAE,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC;IAErC,OAAO,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown.cjs","sourceRoot":"","sources":["../../../src/serializers/markdown.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAuD;AACvD,6CAA+B;AAE/B,sCAA6D;AAE7D,MAAM,iBAAiB,GAAG,CAAC,IAAmB,EAAU,EAAE;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IAEvD,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAEpB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAE9B,2CAA2C;IAC3C,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACnD,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAEpD,2DAA2D;IAC3D,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAEnB,IAAI,QAAQ;QAAE,IAAI,GAAG,IAAI,IAAI,GAAG,CAAC;IACjC,IAAI,WAAW;QAAE,IAAI,GAAG,MAAM,IAAI,MAAM,CAAC;IACzC,IAAI,eAAe;QAAE,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC;IAC1C,IAAI,UAAU;QAAE,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC;IAErC,8EAA8E;IAC9E,OAAO,GAAG,iBAAiB,GAAG,IAAI,GAAG,kBAAkB,EAAE,CAAC;AAC5D,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,IAA0B,EAAU,EAAE;IAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAE3D,OAAO,IAAI,QAAQ,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,IAA8B,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC;AAEtF,MAAM,oBAAoB,GAAG,CAAC,IAAyB,EAAU,EAAE;IACjE,IAAI,IAAA,sBAAa,EAAC,IAAI,CAAC;QAAE,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,IAAA,0BAAiB,EAAC,IAAI,CAAC;QAAE,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAEnE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,MAAM,oBAAoB,GACxB,GAAG,EAAE,CACL,CAAC,IAAyB,EAAU,EAAE;AACpC,6CAA6C;AAC7C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAEjH,MAAM,mBAAmB,GAAG,CAAC,OAAgC,EAAU,EAAE,CAC9E,OAAO;KACJ,GAAG,CAAC,oBAAoB,EAAE,CAAC;KAC3B,IAAI,CAAC,IAAI,CAAC;KACV,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;AAJnE,QAAA,mBAAmB,uBAIgD"}
|
|
@@ -7,15 +7,23 @@ const serializeTextNode = (node) => {
|
|
|
7
7
|
const isStrikeThrough = node[Text.TextProperty.STRIKE_THROUGH];
|
|
8
8
|
const fontWeight = node[Text.TextProperty.FONT_WEIGHT];
|
|
9
9
|
let { text } = node;
|
|
10
|
+
if (!text.trim())
|
|
11
|
+
return text;
|
|
12
|
+
// Extract leading and trailing whitespaces
|
|
13
|
+
const leadingWhitespace = text.match(/^\s+/) || '';
|
|
14
|
+
const trailingWhitespace = text.match(/\s+$/) || '';
|
|
15
|
+
// Trim the text to remove leading and trailing whitespaces
|
|
16
|
+
text = text.trim();
|
|
10
17
|
if (isItalic)
|
|
11
|
-
text =
|
|
18
|
+
text = `*${text}*`;
|
|
12
19
|
if (isUnderline)
|
|
13
20
|
text = `<u>${text}</u>`;
|
|
14
21
|
if (isStrikeThrough)
|
|
15
22
|
text = `~~${text}~~`;
|
|
16
23
|
if (fontWeight)
|
|
17
24
|
text = `**${text}**`;
|
|
18
|
-
|
|
25
|
+
// Add the leading and trailing whitespaces back to the outside of the markers
|
|
26
|
+
return `${leadingWhitespace}${text}${trailingWhitespace}`;
|
|
19
27
|
};
|
|
20
28
|
const serializeLinkElement = (node) => {
|
|
21
29
|
const children = node.children.map(serializeNodeFactory());
|
|
@@ -32,5 +40,8 @@ const serializeElementNode = (node) => {
|
|
|
32
40
|
const serializeNodeFactory = () => (node) =>
|
|
33
41
|
// eslint-disable-next-line no-nested-ternary
|
|
34
42
|
Slate.Text.isText(node) ? serializeTextNode(node) : Slate.Element.isElement(node) ? serializeElementNode(node) : '';
|
|
35
|
-
export const serializeToMarkdown = (content) => content
|
|
43
|
+
export const serializeToMarkdown = (content) => content
|
|
44
|
+
.map(serializeNodeFactory())
|
|
45
|
+
.join('\n')
|
|
46
|
+
.replace(/\n{3,}/g, (match) => `\n${'<br/>'.repeat(match.length - 2)}\n\n`);
|
|
36
47
|
//# sourceMappingURL=markdown.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.mjs","sourceRoot":"","sources":["../../../src/serializers/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,IAAI,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE7D,MAAM,iBAAiB,GAAG,CAAC,IAAmB,EAAU,EAAE;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IAEvD,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAEpB,IAAI,QAAQ;QAAE,IAAI,GAAG,IAAI,IAAI,GAAG,CAAC;IACjC,IAAI,WAAW;QAAE,IAAI,GAAG,MAAM,IAAI,MAAM,CAAC;IACzC,IAAI,eAAe;QAAE,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC;IAC1C,IAAI,UAAU;QAAE,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC;IAErC,OAAO,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown.mjs","sourceRoot":"","sources":["../../../src/serializers/markdown.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED