fix: 修复 Mermaid 渲染错误 - 改为立即渲染每个图表而非批量渲染 - 修复 className.indexOf 错误 - 添加详细的错误日志 - 缩短日志输出的代码长度

This commit is contained in:
2026-01-23 21:18:45 +08:00
parent 2659bb9131
commit ae4554bcfa

View File

@@ -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);
});
});