diff --git a/.changeset/pink-geckos-sing.md b/.changeset/pink-geckos-sing.md new file mode 100644 index 0000000000..dba6b82c55 --- /dev/null +++ b/.changeset/pink-geckos-sing.md @@ -0,0 +1,5 @@ +--- +'mermaid': minor +--- + +feat: support links in SVGs 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 3ab4167a22..4c2a769fe4 100644 --- a/packages/mermaid/src/rendering-util/handle-markdown-text.spec.ts +++ b/packages/mermaid/src/rendering-util/handle-markdown-text.spec.ts @@ -272,6 +272,13 @@ test('markdownToHTML - Only italic formatting', () => { expect(output).toEqual(expectedOutput); }); +test('markdownToHTML - HTML Link', () => { + const input = `This is a [link](http://example.com)`; + const expectedOutput = `
This is a link
`; + const output = markdownToHTML(input); + expect(output).toEqual(expectedOutput); +}); + test('markdownToHTML - Mixed formatting', () => { const input = `*Italic* and **bold** formatting`; const expectedOutput = `Italic and bold formatting
`; diff --git a/packages/mermaid/src/rendering-util/handle-markdown-text.ts b/packages/mermaid/src/rendering-util/handle-markdown-text.ts index f898875cf0..79fa31be81 100644 --- a/packages/mermaid/src/rendering-util/handle-markdown-text.ts +++ b/packages/mermaid/src/rendering-util/handle-markdown-text.ts @@ -88,6 +88,8 @@ export function markdownToHTML(markdown: string, { markdownAutoWrap }: MermaidCo return `${node.text}`; } else if (node.type === 'escape') { return node.text; + } else if (node.type === 'link') { + return `${node.tokens?.map(output).join('')}`; } return `Unsupported markdown: ${node.type}`; }