diff --git a/src/commands/interface-manager/DeadDocument.ts b/src/commands/interface-manager/DeadDocument.ts index 16d6b51b..06c5540a 100644 --- a/src/commands/interface-manager/DeadDocument.ts +++ b/src/commands/interface-manager/DeadDocument.ts @@ -63,6 +63,7 @@ export enum NodeTag { BoldFace = 'b', ItalicFace = 'i', Anchor = 'a', + Fragment = 'fragment', } /** diff --git a/src/commands/interface-manager/DeadDocumentHtml.ts b/src/commands/interface-manager/DeadDocumentHtml.ts index fc6fa0c9..1d0283c1 100644 --- a/src/commands/interface-manager/DeadDocumentHtml.ts +++ b/src/commands/interface-manager/DeadDocumentHtml.ts @@ -62,4 +62,7 @@ HTML_RENDERER.registerRenderer') }, staticString('') +).registerInnerNode(NodeTag.Fragment, + blank, + blank ); diff --git a/src/commands/interface-manager/DeadDocumentMarkdown.ts b/src/commands/interface-manager/DeadDocumentMarkdown.ts index 173106aa..d6473702 100644 --- a/src/commands/interface-manager/DeadDocumentMarkdown.ts +++ b/src/commands/interface-manager/DeadDocumentMarkdown.ts @@ -132,4 +132,7 @@ MARKDOWN_RENDERER.registerRenderer(NodeTag.TextNode, node, (rawChild as number).toString()); } else if (Array.isArray(rawChild)) { rawChild.forEach(ensureChild); + // Then it's a DocumentNode|LeafNode } else if (typeof rawChild.leafNode === 'boolean') { - node.addChild(rawChild); + if (rawChild.tag === NodeTag.Fragment) { + (rawChild as DocumentNode).getChildren().forEach(node.addChild, node); + } else { + node.addChild(rawChild); + } } else { const presentationType = presentationTypeOf(rawChild); if (presentationType !== undefined) {