流程图
流程图是用于表示工作流程或过程的图表。Mermaid 可以通过文本描述来渲染流程图。
语法
节点类型
id[文本]
- 矩形节点id(文本)
- 圆角矩形节点id([文本])
- 体育场形状节点id[[文本]]
- 子程序形状节点id>文本]
- 不对称节点id{文本}
- 菱形节点id
- 六边形节点id[/文本/]
- 平行四边形节点id[\文本\]
- 反向平行四边形节点
连接线
-->
- 箭头连接---
- 开放连接-.->
- 虚线连接==>
- 粗线连接--文本-->
- 带文本的箭头连接--文本---
- 带文本的开放连接==文本==>
- 带文本的粗线连接
基础示例
代码:
mermaid
flowchart TD
A[开始] --> B{是否继续?}
B -->|是| C[确认]
C --> D[重新思考]
D --> B
B ---->|否| E[结束]
高级示例
这是一个展示各种节点类型和连接方式的复杂流程图:
代码:
mermaid
flowchart LR
A[/输入/] --> B(处理)
B --> C{判断}
C -->|方案一| D[结果 1]
C -->|方案二| E[结果 2]
D --> F([输出])
E --> F
F --> G{{显示}}
G -.-> H>退出]
方向设置
你可以指定流程图的方向:
TB
- 从上到下TD
- 从上到下(同 TB)BT
- 从下到上RL
- 从右到左LR
- 从左到右
子图
你可以使用子图来组织复杂的流程图:
代码:
mermaid
flowchart TB
subgraph 子图1
a1-->a2
end
subgraph 子图2
b1-->b2
end
subgraph 子图3
c1-->c2
end
c1-->a2
样式设置
你可以为节点和连接线添加样式:
代码:
mermaid
flowchart LR
id1(开始)-->id2(结束)
style id1 fill:#f9f,stroke:#333,stroke-width:4px
style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
特殊语法
转义字符
如果文本中包含特殊字符,可以使用双引号:
代码:
mermaid
flowchart LR
A["这是一个「特殊」的节点"]
多行文本
使用 <br>
来添加换行:
代码:
mermaid
flowchart TD
A["多行<br>文本"]
实用技巧
- 保持流程图简洁明了
- 为相似元素使用一致的节点类型
- 为连接线添加有意义的标签
- 选择最适合展示流程的方向
- 使用子图组织复杂逻辑
- 合理使用样式突出重要节点
- 避免过多的交叉连接
- 使用清晰的节点命名
常见问题解决
布局问题
- 尝试调整图表方向
- 减少节点间的连接
- 使用子图分组相关节点
样式问题
- 检查样式语法
- 确保颜色代码正确
- 验证样式属性名称
渲染问题
- 确认语法正确
- 检查节点 ID 唯一性
- 验证连接的节点是否存在