// Marked.js extension for Mermaid diagrams function markedMermaid(options) { options = options || {}; return { extensions: [ { name: 'mermaid', level: 'block', start(src) { return src.match(/^```mermaid/m)?.index; }, tokenizer(src, tokens) { const rule = /^```mermaid\n([\s\S]*?)\n```/; const match = rule.exec(src); if (match) { return { type: 'mermaid', raw: match[0], text: match[1].trim() }; } }, renderer(token) { const id = 'mermaid-' + Math.random().toString(36).substr(2, 9); // Initialize Mermaid if not already done if (typeof mermaid !== 'undefined' && !window.mermaidInitialized) { mermaid.initialize({ startOnLoad: false, theme: 'default', securityLevel: 'loose' }); window.mermaidInitialized = true; } // Create a div that will be processed by Mermaid const div = `