From d74013c64200125e2f61d49e9acf4517bcef9328 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 14 Aug 2025 13:05:44 +0530 Subject: [PATCH] fix: Remove data loss when unsupported markdown is encountered --- .../mermaid/src/rendering-util/handle-markdown-text.spec.ts | 6 +++++- packages/mermaid/src/rendering-util/handle-markdown-text.ts | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/mermaid/src/rendering-util/handle-markdown-text.spec.ts b/packages/mermaid/src/rendering-util/handle-markdown-text.spec.ts index 3ab4167a2..2000d58b8 100644 --- a/packages/mermaid/src/rendering-util/handle-markdown-text.spec.ts +++ b/packages/mermaid/src/rendering-util/handle-markdown-text.spec.ts @@ -285,7 +285,11 @@ test('markdownToHTML - Unsupported formatting', () => { - l1 - l2 - l3`) - ).toMatchInlineSnapshot('"

Hello

Unsupported markdown: list"'); + ).toMatchInlineSnapshot(` + "

Hello

- l1 + - l2 + - l3" + `); }); test('markdownToHTML - no auto wrapping', () => { diff --git a/packages/mermaid/src/rendering-util/handle-markdown-text.ts b/packages/mermaid/src/rendering-util/handle-markdown-text.ts index f898875cf..82e94c2c2 100644 --- a/packages/mermaid/src/rendering-util/handle-markdown-text.ts +++ b/packages/mermaid/src/rendering-util/handle-markdown-text.ts @@ -3,6 +3,7 @@ import { marked } from 'marked'; import { dedent } from 'ts-dedent'; import type { MarkdownLine, MarkdownWordType } from './types.js'; import type { MermaidConfig } from '../config.type.js'; +import { log } from '../logger.js'; /** * @param markdown - markdown to process @@ -89,7 +90,8 @@ export function markdownToHTML(markdown: string, { markdownAutoWrap }: MermaidCo } else if (node.type === 'escape') { return node.text; } - return `Unsupported markdown: ${node.type}`; + log.warn(`Unsupported markdown: ${node.type}`); + return node.raw; } return nodes.map(output).join('');