fix: 修复 Mermaid 渲染错误 - 改为立即渲染每个图表而非批量渲染 - 修复 className.indexOf 错误 - 添加详细的错误日志 - 缩短日志输出的代码长度
This commit is contained in:
56
footer.php
56
footer.php
@@ -239,17 +239,33 @@
|
||||
|
||||
console.log('Contains newlines:', code.indexOf('\n') !== -1);
|
||||
|
||||
console.log('First 200 chars:', code.substring(0, 200));
|
||||
console.log('First 100 chars:', code.substring(0, 100));
|
||||
|
||||
|
||||
|
||||
// 清空 div 内容
|
||||
// 清空 div 内容并设置新内容
|
||||
|
||||
mermaidDiv.innerHTML = '';
|
||||
|
||||
mermaidDiv.textContent = code;
|
||||
|
||||
mermaidDiv.classList.add('mermaid-to-render');
|
||||
|
||||
|
||||
// 立即渲染这个图表
|
||||
|
||||
try {
|
||||
|
||||
mermaid.init(undefined, mermaidDiv);
|
||||
|
||||
console.log('Mermaid diagram rendered successfully');
|
||||
|
||||
} catch (e) {
|
||||
|
||||
console.error('Mermaid rendering error:', e);
|
||||
|
||||
console.error('Code that failed:', code.substring(0, 200));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -355,13 +371,13 @@
|
||||
|
||||
console.log('Contains newlines:', code.indexOf('\n') !== -1);
|
||||
|
||||
console.log('First 200 chars:', code.substring(0, 200));
|
||||
console.log('First 100 chars:', code.substring(0, 100));
|
||||
|
||||
// 创建 Mermaid 容器
|
||||
|
||||
let mermaidDiv = document.createElement('div');
|
||||
|
||||
mermaidDiv.className = 'mermaid mermaid-to-render';
|
||||
mermaidDiv.className = 'mermaid';
|
||||
|
||||
mermaidDiv.textContent = code;
|
||||
|
||||
@@ -369,39 +385,25 @@
|
||||
|
||||
pre.parentNode.replaceChild(mermaidDiv, pre);
|
||||
|
||||
});
|
||||
|
||||
// 延迟渲染,确保 DOM 完全加载
|
||||
|
||||
setTimeout(function() {
|
||||
// 立即渲染
|
||||
|
||||
let mermaidElements = document.querySelectorAll('.mermaid-to-render:not(.mermaid-rendered)');
|
||||
try {
|
||||
|
||||
if (mermaidElements.length > 0) {
|
||||
mermaid.init(undefined, mermaidDiv);
|
||||
|
||||
console.log('Rendering', mermaidElements.length, 'Mermaid diagrams');
|
||||
console.log('Standard Mermaid diagram rendered successfully');
|
||||
|
||||
mermaidElements.forEach(function(el) {
|
||||
} catch (e) {
|
||||
|
||||
el.classList.add('mermaid-rendered');
|
||||
console.error('Mermaid rendering error:', e);
|
||||
|
||||
el.classList.remove('mermaid-to-render');
|
||||
|
||||
});
|
||||
|
||||
try {
|
||||
|
||||
mermaid.init(undefined, mermaidElements);
|
||||
|
||||
} catch (e) {
|
||||
|
||||
console.error('Mermaid rendering error:', e);
|
||||
|
||||
}
|
||||
console.error('Code that failed:', code.substring(0, 200));
|
||||
|
||||
}
|
||||
|
||||
}, 100);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user