fix: 修复 Mermaid 图表解析错误
- 使用 innerHTML 替代 textContent 获取代码内容 - 添加 HTML 实体解码逻辑(< > & 等) - 确保保留代码块中的换行符 - 修复 'Parse error on line 1' 错误
This commit is contained in:
24
footer.php
24
footer.php
@@ -171,7 +171,7 @@
|
|||||||
|
|
||||||
mermaid.initialize({
|
mermaid.initialize({
|
||||||
|
|
||||||
startOnLoad: true,
|
startOnLoad: false,
|
||||||
|
|
||||||
theme: '<?php echo get_option('argon_mermaid_theme', 'default'); ?>',
|
theme: '<?php echo get_option('argon_mermaid_theme', 'default'); ?>',
|
||||||
|
|
||||||
@@ -197,12 +197,32 @@
|
|||||||
|
|
||||||
mermaidDiv.className = 'mermaid';
|
mermaidDiv.className = 'mermaid';
|
||||||
|
|
||||||
mermaidDiv.textContent = element.textContent;
|
// 获取代码内容,保留换行符
|
||||||
|
|
||||||
|
let code = element.innerHTML;
|
||||||
|
|
||||||
|
// 解码 HTML 实体(如 < > &)
|
||||||
|
|
||||||
|
let textarea = document.createElement('textarea');
|
||||||
|
|
||||||
|
textarea.innerHTML = code;
|
||||||
|
|
||||||
|
code = textarea.value;
|
||||||
|
|
||||||
|
// 去除首尾空白,但保留内部换行
|
||||||
|
|
||||||
|
code = code.trim();
|
||||||
|
|
||||||
|
mermaidDiv.textContent = code;
|
||||||
|
|
||||||
pre.parentNode.replaceChild(mermaidDiv, pre);
|
pre.parentNode.replaceChild(mermaidDiv, pre);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 手动触发渲染
|
||||||
|
|
||||||
|
mermaid.run();
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user