Mermaid 图表生成
使用 Mermaid 语法生成基于文本的图表。Mermaid 图表可直接在 GitHub、GitLab、Notion 及许多 Markdown 查看器中渲染。
快速开始
最小流程图:
flowchart TD
A[Start] --> B[End]
输出格式
Markdown 代码块——嵌入 .md 文件:
flowchart TD
A --> B
独立文件——.mmd 或 .mermaid 扩展名:
flowchart TD
A --> B
工作流程
- 识别图表类型——将用户意图匹配到图表类型
- 规划结构——列出节点/实体及其关系
- 生成语法——按类型特定模式编写 Mermaid 代码
- 输出——写入文件或嵌入 Markdown
图表类型概览
流程图
方向:TD(自上而下)、LR(从左到右)、BT、RL
flowchart TD
A[Start] --> B{Decision?}
B -->|Yes| C[Process]
B -->|No| D[End]
C --> D
时序图
sequenceDiagram
participant U as User
participant S as Server
U->>S: Request
S-->>U: Response
类图
classDiagram
class Animal {
+String name
+makeSound()
}
class Dog {
+bark()
}
Animal <|-- Dog
实体关系图(ER)
erDiagram
USER ||--o{ ORDER : places
ORDER ||--|{ LINE_ITEM : contains
PRODUCT ||--o{ LINE_ITEM : "ordered in"
状态图
stateDiagram-v2
[*] --> Idle
Idle --> Processing : start
Processing --> Done : complete
Done --> [*]
甘特图
gantt
title Project Timeline
dateFormat YYYY-MM-DD
section Phase 1
Task A :a1, 2024-01-01, 30d
Task B :after a1, 20d
饼图
pie title Distribution
"Category A" : 40
"Category B" : 30
"Category C" : 30
思维导图
mindmap
root((Central Topic))
Branch A
Leaf 1
Leaf 2
Branch B
Leaf 3
时间线
timeline
title History
2020 : Event A
2021 : Event B
2022 : Event C
Git 图
gitGraph
commit
branch develop
checkout develop
commit
checkout main
merge develop
commit
节点形状(流程图)
| 形状 | 语法 | 用途 |
|---|---|---|
| 矩形 | [text] | 流程/动作 |
| 圆角 | (text) | 开始/结束 |
| 体育场形 | ([text]) | 终止 |
| 子程序 | [[text]] | 子流程 |
| 数据库 | [(text)] | 数据存储 |
| 圆形 | ((text)) | 连接符 |
| 菱形 | {text} | 判断 |
| 六边形 | {{text}} | 准备 |
| 平行四边形 | [/text/] | 输入/输出 |
| 梯形 | [/text] | 手动操作 |
箭头类型
| 箭头 | 语法 | 含义 |
|---|---|---|
| 实线 | --> | 流向 |
| 虚线 | -.-> | 可选/异步 |
| 粗线 | ==> | 重要 |
| 带文本 | `--> | |
| label | ` | 标签 |
| 开放 | --- | 关联 |
样式
内联样式:
flowchart TD
A[Start]:::green --> B[End]:::red
classDef green fill:#90EE90
classDef red fill:#FFB6C1
主题配置:
%%{init: {'theme': 'forest'}}%%
flowchart TD
A --> B
可用主题:default、forest、dark、neutral、base
关键规则
- 缩进——使用一致的 4 空格缩进
- 节点 ID——使用简短、唯一的标识符(A、B、node1)
- 特殊字符——含特殊字符的文本用引号包裹:A["Text with (parens)"]
- 子图——用 end 关键字结束
- 无尾随空白——可能导致解析问题
子图(流程图)
flowchart TD
subgraph Group1[First Group]
A --> B
end
subgraph Group2[Second Group]
C --> D
end
B --> C
何时使用 Mermaid
- Markdown 文件中的文档
- README 图表(GitHub/GitLab 原生渲染)
- API 流程的时序图
- OOP 设计的类图
- 数据库架构的 ER 图
- 项目计划的甘特图
- 不需要精确排版的快速图表
参考资料
- 各图表类型的完整示例见 references/diagram-types.md。
- 详细语法和配置选项见 references/syntax-reference.md。