mermaid 图表问题汇总

根据反馈和多次调整代码,以下是渲染失败的主要原因总结,以及成功的关键点:


问题原因

  1. 特殊字符问题

    • 原始代码中使用了括号 () 和中文字符,这些字符在某些 Mermaid 渲染器(例如 v10.9.1)中会被误解析为不支持的语法。
    • 特殊符号(如 |标签| 或括号)需要被转义,但 Mermaid 并不总是能正确处理它们,导致语法错误。
  2. 中文字符不兼容

    • 一些渲染器对中文字符支持不完全,可能引发解析问题。
    • 中文字符有时会与 Mermaid 内部的语法解析冲突,导致无法识别的节点。
  3. 节点内容过于复杂

    • 节点中的文字描述过长,包含括号或多种格式化内容(如 a-a3 Complex (Cytochrome c Oxidase)),超出了 Mermaid 的语法兼容性。
    • 节点内容尽量简洁,避免额外符号或复杂结构。
  4. subgraph 结构未正确解析

    • subgraph 名称和结构可能与其他语法问题叠加,导致编译器未能正确识别子图。

成功渲染的关键点

  1. 去掉括号和特殊字符

    • 替换复杂文本,将括号 ()|标签| 移除,直接用空格分隔内容。例如:
      • a-a3 Complex (Cytochrome c Oxidase)a-a3 Complex Cytochrome c Oxidase
  2. 简化节点内容

    • 将节点名称和描述精简为单词或短语,避免使用冗长或复杂的表达方式。
  3. 移除中文

    • 将中文替换为英文或拼音以避免不兼容问题。
    • 如果必须保留中文,可以先测试渲染器是否支持中文,并逐步添加中文内容进行验证。
  4. subgraph 的命名规范

    • 子图名称如 Electron_Transport_Chain 使用下划线 _ 或直接使用一个单词,避免空格或特殊字符。
    • 子图结构要清晰且完整,避免嵌套问题。

改进后的代码特点

最终渲染成功的代码调整后特点:

  • 遵守 Mermaid 的基础语法规则(如节点名称不带括号、不含特殊符号)。
  • 子图结构清晰且命名规范。
  • 中文替换为英文避免兼容性问题。

呼吁思源更新 mermaid 版本

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    23014 引用 • 92567 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    8447 引用 • 38478 回帖 • 155 关注

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...