You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Just the Docs主题的Jekyll页面无法渲染Mermaid图表如何排查配置问题

Jekyll + Just the Docs 主题 Mermaid 无法渲染常见问题及修复方案

1. 脚本引入位置错误

Just the Docs 主题有固定的自定义资源注入入口,你需要把Mermaid相关脚本放在_includes/custom.html文件末尾,不要随意插入其他模板文件,避免出现脚本加载顺序错误、被主题默认脚本覆盖的问题。

2. 初始化逻辑不正确

新版本Mermaid需要等待DOM加载完成后再执行初始化,同时需要适配主题的明暗模式切换,正确的初始化代码示例如下:

// 等待DOM加载完成
document.addEventListener('DOMContentLoaded', function() {
  // 配置Mermaid参数,适配主题明暗模式
  mermaid.initialize({
    startOnLoad: true,
    theme: window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'default',
    securityLevel: 'loose'
  });
});

如果要支持主题动态切换明暗模式,可额外添加监听代码同步切换Mermaid主题。

3. 代码块未被正确识别

Just the Docs 默认会将````mermaid格式的代码块渲染为普通代码块,包裹在

`标签中,Mermaid无法直接识别,需要额外添加脚本转换这类代码块:
document.querySelectorAll('pre code.language-mermaid').forEach((block) => {
  // 提取mermaid代码内容
  const content = block.textContent;
  // 创建mermaid专用div
  const mermaidDiv = document.createElement('div');
  mermaidDiv.className = 'mermaid';
  mermaidDiv.textContent = content;
  // 替换原有代码块
  block.parentNode.replaceWith(mermaidDiv);
});
// 转换完成后重新调用Mermaid渲染
mermaid.init();

4. 特殊字符被Jekyll转义 #
如果你直接在Markdown文件中写<div class="mermaid">包裹的图表代码,Jekyll的Markdown渲染器会自动转义|、-->等特殊字符,导致Mermaid解析失败,需要用Jekyll的raw标签包裹图表代码,避免转义:
{% raw %}
<div class="mermaid">
    graph TD 
    A[Client] -->|tcp_123| B(Load Balancer) 
    B -->|tcp_456| C[Server1] 
    B -->|tcp_456| D[Server2]
</div>
{% endraw %}

5. 引入的Mermaid版本不兼容 #
如果你使用的是Mermaid 10.x及以上版本,需要引入UMD格式的资源包,不要引入ES模块格式的资源,否则会出现全局找不到mermaid对象的问题,导致初始化失败。 #
内容的提问来源于stack exchange,提问作者Greenfly77
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 23:36:04