diff --git a/packages/lib/serializer/convertRichTextToMarkdown.ts b/packages/lib/serializer/convertRichTextToMarkdown.ts index 65fb4b776..ee8c32d01 100644 --- a/packages/lib/serializer/convertRichTextToMarkdown.ts +++ b/packages/lib/serializer/convertRichTextToMarkdown.ts @@ -9,7 +9,7 @@ export const convertRichTextToMarkdown = ( let extraNewLinesCount = 0 const test = richText .reduce((acc, node) => { - if (node.type === 'variable' || node.type === 'inline-variable') { + if (node.type === 'variable') { return [ ...acc, ...node.children.map( diff --git a/packages/lib/serializer/serialize.ts b/packages/lib/serializer/serialize.ts index fc4482f80..16be5fbb0 100644 --- a/packages/lib/serializer/serialize.ts +++ b/packages/lib/serializer/serialize.ts @@ -21,7 +21,7 @@ export default function serialize( opts: Options = { nodeTypes: defaultNodeTypes, } -) { +): string | undefined { const { nodeTypes: userNodeTypes = defaultNodeTypes, ignoreParagraphNewline = false, @@ -40,6 +40,19 @@ export default function serialize( }, } + if ('type' in chunk && chunk.type === nodeTypes['inline-variable']) + return chunk.children + .map((child) => + serialize( + { + ...child, + parentType: nodeTypes['inline-variable'], + }, + opts + ) + ) + .join('') + const LIST_TYPES = [nodeTypes.ul_list, nodeTypes.ol_list] let children = text @@ -169,6 +182,13 @@ export default function serialize( } } + if (chunk.parentType === nodeTypes['inline-variable']) { + if (opts.flavour === 'whatsapp') { + return children + } + return escapeHtml(children) + } + switch (type) { case nodeTypes.heading[1]: return `# ${children}\n`