feat: dynamically load mermaid.js

This commit is contained in:
Shirasawa
2025-09-16 09:43:03 +00:00
parent d041d58bb6
commit db05e34736
4 changed files with 22 additions and 40 deletions
+18
View File
@@ -1569,3 +1569,21 @@ export const decodeString = (str: string) => {
return str;
}
};
export const renderMermaidDiagram = async (code: string) => {
try {
const { default: mermaid } = await import('mermaid');
mermaid.initialize({
startOnLoad: true,
theme: document.documentElement.classList.contains('dark') ? 'dark' : 'default',
securityLevel: 'loose'
});
if (await mermaid.parse(code)) {
const { svg } = await mermaid.render(`mermaid-${uuidv4()}`, code);
return svg;
}
} catch (error) {
console.log('Failed to render mermaid diagram:', error);
return '';
}
};