return node.textContent || ''; } if (node.matches('pre')) { return node.textContent || ''; } var nestedCode = node.querySelector('td.code pre, pre > code, code, pre'); return nestedCode ? nestedCode.textContent || '' : ''; } function normalizeMermaidBlocks() { var candidates = document.querySelectorAll( 'pre.mermaid, figure.highlight, pre code.language-mermaid, pre code.language-plaintext' ); candidates.forEach(function (node) { if (node.matches('pre.mermaid')) return; var replaceTarget = node.closest('figure.highlight') || node.closest('pre') || node; if (!replaceTarget) return; var source = extractCodeText(replaceTarget); if (!looksLikeMermaid(source)) return; var mermaidPre = document.createElement('pre'); mermaidPre.className = 'mermaid'; mermaidPre.textContent = source.trim(); replaceTarget.replaceWith(mermaidPre); }); } normalizeMermaidBlocks(); var mermaidNodes = document.querySelectorAll('pre.mermaid'); if (!mermaidNodes.length) return; var optionsElement = document.getElementById('mermaid-options'); var mermaidOptions = {}; if (optionsElement) { try { mermaidOptions = JSON.parse(optionsElement.textContent || '{}'); } catch (err) { mermaidOptions = {}; } } mermaid.initialize(mermaidOptions); mermaid.run({ querySelector: 'pre.mermaid' }); })();