fix: 修复 Mermaid 图表解析错误

- 使用 innerHTML 替代 textContent 获取代码内容
- 添加 HTML 实体解码逻辑(< > & 等)
- 确保保留代码块中的换行符
- 修复 'Parse error on line 1' 错误
This commit is contained in:
2026-01-23 19:02:08 +08:00
parent ddb6e24b3b
commit a5521b5fb2

View File

@@ -171,7 +171,7 @@
mermaid.initialize({
startOnLoad: true,
startOnLoad: false,
theme: '<?php echo get_option('argon_mermaid_theme', 'default'); ?>',
@@ -197,12 +197,32 @@
mermaidDiv.className = 'mermaid';
mermaidDiv.textContent = element.textContent;
// 获取代码内容,保留换行符
let code = element.innerHTML;
// 解码 HTML 实体(如 &lt; &gt; &amp;
let textarea = document.createElement('textarea');
textarea.innerHTML = code;
code = textarea.value;
// 去除首尾空白,但保留内部换行
code = code.trim();
mermaidDiv.textContent = code;
pre.parentNode.replaceChild(mermaidDiv, pre);
});
// 手动触发渲染
mermaid.run();
});
</script>