前置知识: Markdown

Mermaid图表

00:00
4 min Intermediate 2026/6/14

Mermaid图表语法:流程图、时序图、甘特图、类图与状态图的完整用法。

1. Mermaid 概述

1.1 什么是 Mermaid

Mermaid 是一种基于文本的图表描述语言,允许在 Markdown 中使用代码块创建图表。它将图表定义从图形编辑器转移到文本,使图表可以纳入版本控制。

1.2 基本语法

```mermaid
graph TD
    A[开始] --> B{判断}
    B -->|是| C[执行]
    B -->|否| D[结束]
    C --> D
```

1.3 支持的图表类型

图表类型关键字用途
流程图graph算法流程、业务流程
时序图sequenceDiagram交互流程、API 调用
甘特图gantt项目进度、任务排期
类图classDiagram面向对象设计
状态图stateDiagram-v2状态机、生命周期
ER 图erDiagram数据库设计
饼图pie数据占比
思维导图mindmap知识结构
Git 图gitGraph分支策略

2. 流程图

2.1 方向

关键字方向
TB / TD从上到下
BT从下到上
LR从左到右
RL从右到左

2.2 节点形状

语法形状用途
[文本]矩形普通步骤
(文本)圆角矩形开始/结束
{文本}菱形判断/条件
[(文本)]圆柱体数据库
[[文本]]子流程子过程
((文本))圆形连接点

2.3 连接线

| 语法 | 样式 | 说明 | | :----- | :--------- | :-------- | ------ | -------- | | --> | 实线箭头 | 默认连接 | | --- | 实线无箭头 | 无方向 | | -.-> | 虚线箭头 | 可选/条件 | | ==> | 粗线箭头 | 强调 | | --> | 文本 | | 带标签 | 条件说明 |

2.4 完整示例

3. 时序图

3.1 基本语法

3.2 消息类型

语法样式说明
->>实线箭头同步请求
-->>虚线箭头返回/响应
--)实线开放箭头异步消息
--)虚线开放箭头异步响应

3.3 高级特性

  • autonumber:自动编号
  • Note over A,B:跨参与者注释
  • activate/deactivate:显示激活状态
  • alt/else:条件分支
  • loop:循环
  • opt:可选

4. 甘特图

4.1 基本语法

Mermaid 渲染失败,原始代码如下:
gantt
    title 项目开发计划
    dateFormat YYYY-MM-DD
    axisFormat %m/%d

    section 需求阶段
    需求分析       :done, req1, 2026-01-01, 10d
    需求评审       :done, req2, after req1, 3d

    section 开发阶段
    前端开发       :active, dev1, after req2, 20d
    后端开发       :active, dev2, after req2, 25d

    section 测试阶段
    集成测试       :test1, after dev1, 10d
    性能测试       :test2, after test1, 5d

    section 上线阶段
    预发布         :rel1, after test2, 3d
    正式发布       :milestone, rel2, after rel1, 0d

4.2 任务状态

关键字样式说明
done已完成(灰色)已完成的任务
active进行中(蓝色)当前执行的任务
(默认)未开始(浅色)执行的任务
milestone里程碑(菱形)关键节点
crit关键路径红色必须按时完成

5. 类图

5.1 基本语法

5.2 关系类型

语法关系说明
<|--继承子类继承父
*\--组合强拥有,生命周期一致
o--聚合拥有,可独立存在
-->关联引用
--关联(双向)双向引用
..>依赖使用关系
..|>实现接口实现

6. 状态图

6.1 基本语法

6.2 复合状态

7. 平台支持

平台Mermaid 支持说明
GitHub原生支持
GitLab原生支持
Obsidian原生支持
Typora原生支持
Hugo需 shortcode 或插件
Jekyll插件
CommonMark支持

8. 调试技巧

  • 使用 Mermaid Live Editor 在线编辑预览
  • 语法错误图表渲染检查控制台错误信息
  • 节点 ID 不能含空,使用文本标签代替
  • 中文文本在某些渲染器中可能需要引号

知识检测

学习进度

-- 已学文档
--% 知识覆盖率

学习推荐

专注模式