根据反馈和多次调整代码,以下是渲染失败的主要原因总结,以及成功的关键点:
问题原因
-
特殊字符问题
- 原始代码中使用了括号
()
和中文字符,这些字符在某些 Mermaid 渲染器(例如 v10.9.1)中会被误解析为不支持的语法。 - 特殊符号(如
|标签|
或括号)需要被转义,但 Mermaid 并不总是能正确处理它们,导致语法错误。
- 原始代码中使用了括号
-
中文字符不兼容
- 一些渲染器对中文字符支持不完全,可能引发解析问题。
- 中文字符有时会与 Mermaid 内部的语法解析冲突,导致无法识别的节点。
-
节点内容过于复杂
- 节点中的文字描述过长,包含括号或多种格式化内容(如
a-a3 Complex (Cytochrome c Oxidase)
),超出了 Mermaid 的语法兼容性。 - 节点内容尽量简洁,避免额外符号或复杂结构。
- 节点中的文字描述过长,包含括号或多种格式化内容(如
-
subgraph
结构未正确解析subgraph
名称和结构可能与其他语法问题叠加,导致编译器未能正确识别子图。
成功渲染的关键点
-
去掉括号和特殊字符
- 替换复杂文本,将括号
()
和|标签|
移除,直接用空格分隔内容。例如:a-a3 Complex (Cytochrome c Oxidase)
→a-a3 Complex Cytochrome c Oxidase
- 替换复杂文本,将括号
-
简化节点内容
- 将节点名称和描述精简为单词或短语,避免使用冗长或复杂的表达方式。
-
移除中文
- 将中文替换为英文或拼音以避免不兼容问题。
- 如果必须保留中文,可以先测试渲染器是否支持中文,并逐步添加中文内容进行验证。
-
subgraph
的命名规范- 子图名称如
Electron_Transport_Chain
使用下划线_
或直接使用一个单词,避免空格或特殊字符。 - 子图结构要清晰且完整,避免嵌套问题。
- 子图名称如
改进后的代码特点
最终渲染成功的代码调整后特点:
- 遵守 Mermaid 的基础语法规则(如节点名称不带括号、不含特殊符号)。
- 子图结构清晰且命名规范。
- 中文替换为英文避免兼容性问题。
呼吁思源更新 mermaid 版本
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于