@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 = `_${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
- return text;
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.map(serializeNodeFactory()).join('\n');
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;AACd,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,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAAnH,QAAA,mBAAmB,uBAAgG"}
1
+ {"version":3,"file":"markdown.cjs","sourceRoot":"","sources":["../../../src/serializers/markdown.ts"],"names":[],"mappings":"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"}
@@ -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 = `_${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
- return text;
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.map(serializeNodeFactory()).join('\n');
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;AACd,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,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,iBAAiB,CAAC,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;AAExH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAgC,EAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
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,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,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,iBAAiB,CAAC,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;AAExH,MAAM,CAAC,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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@voiceflow/slate-serializer",
3
3
  "type": "module",
4
4
  "description": "Utilities for serializing slate data",
5
- "version": "1.5.1",
5
+ "version": "1.5.3",
6
6
  "author": "Ben Teichman",
7
7
  "bugs": {
8
8
  "url": "https://github.com/voiceflow/slate-serializer/issues"