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({
|
||||
|
||||
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 实体(如 < > &)
|
||||
|
||||
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>
|
||||
|
||||
Reference in New Issue
Block a user