LOADING

加载过慢请开启缓存 浏览器默认开启

Mermaid图表教程

Mermaid 图表教程

  • Mermaid 是一个基于 JavaScript 的图表绘制工具,它使用简单的文本描述语法来生成各种图表。你可以直接在 Markdown 文件中编写 Mermaid 代码,许多平台(如 GitHub、GitLab、Obsidian、VS Code 等)都支持直接渲染。

基本语法结构

在 Markdown 中使用 Mermaid,需要用mermaid 代码块包裹:

注意,不需要反斜杠,这里为了防止被转化才写
\`\`\` mermaid
graph TD
    A[开始] --> B(处理)
    B --> C{判断}
\`\`\` 

如下图:

graph TD
A[开始] --> B(处理)
B --> C{判断}

流程图

基础流程图

注意,不需要反斜杠,这里为了防止被转化才写
\`\`\`mermaid
flowchart TD
    A[起床] --> B{是否周末?}
    B -->|是| C[睡懒觉]
    B -->|否| D[去上班]
    C --> E[放松]
    D --> F[工作]
\`\`\`
flowchart TD
    A[起床] --> B{是否周末?}
    B -->|是| C[睡懒觉]
    B -->|否| D[去上班]
    C --> E[放松]
    D --> F[工作]

方向说明

  • graph TD - 从上到下
  • graph LR - 从左到右
  • graph RL - 从右到左
  • graph BT - 从下到上

节点形状

注意,不需要反斜杠,这里为了防止被转化才写
\`\`\`mermaid
flowchart LR
    A[方形] --> B(圆角)
    B --> C{菱形}
    C --> D((圆形))
    C --> E>不对称]
    C --> F{六边形}
\`\`\`
flowchart LR
    A[方形] --> B(圆角)
    B --> C{菱形}
    C --> D((圆形))
    C --> E>不对称]
    C --> F{六边形}

时序图

注意,不需要反斜杠,这里为了防止被转化才写
\`\`\`mermaid
sequenceDiagram
    participant 用户
    participant 服务器
    participant 数据库
    用户->>服务器: 登录请求
    服务器->>数据库: 验证用户
    数据库-->>服务器: 验证结果
    服务器-->>用户: 登录成功
\`\`\`
sequenceDiagram
    participant 用户
    participant 服务器
    participant 数据库

    用户->>服务器: 登录请求
    服务器->>数据库: 验证用户
    数据库-->>服务器: 验证结果
    服务器-->>用户: 登录成功

更多时序图语法

注意,不需要反斜杠,这里为了防止被转化才写
\`\`\`mermaid
sequenceDiagram
    Alice->>John: 你好 John,你好吗?
    John-->>Alice: 我很好,谢谢!
    John->>Bob: 你最近怎么样?
    Bob-->>John: 还不错!
    
    Note right of John: 右侧注释<br/>多行文本
    Note over Alice,Bob: 跨越多个参与者
\`\`\`
sequenceDiagram
    Alice->>John: 你好 John,你好吗?
    John-->>Alice: 我很好,谢谢!
    John->>Bob: 你最近怎么样?
    Bob-->>John: 还不错!
    
    Note right of John: 右侧注释
多行文本 Note over Alice,Bob: 跨越多个参与者

甘特图

注意,不需要反斜杠,这里为了防止被转化才写
\`\`\`mermaid
gantt
    title 项目开发计划
    dateFormat YYYY-MM-DD
    axisFormat %m-%d
    
    section 设计阶段
    需求分析 :2024-01-01, 7d
    原型设计 :2024-01-08, 5d
    
    section 开发阶段
    前端开发 :2024-01-15, 10d
    后端开发 :2024-01-15, 12d
    
    section 测试阶段
    单元测试 :2024-01-27, 5d
    集成测试 :2024-02-01, 5d
\`\`\`
gantt
    title 项目开发计划
    dateFormat YYYY-MM-DD
    axisFormat %m-%d
    
    section 设计阶段
    需求分析 :2024-01-01, 7d
    原型设计 :2024-01-08, 5d
    
    section 开发阶段
    前端开发 :2024-01-15, 10d
    后端开发 :2024-01-15, 12d
    
    section 测试阶段
    单元测试 :2024-01-27, 5d
    集成测试 :2024-02-01, 5d

类图

注意,不需要反斜杠,这里为了防止被转化才写
\`\`\`mermaid
classDiagram
    class 动物 {
        +String 名称
        +int 年龄
        +void 吃()
        +void 睡()
    }
    
    class 狗 {
        +void 吠叫()
    }
    
    class 猫 {
        +void 喵喵叫()
    }
    
    动物 <|-- 狗
    动物 <|-- 猫
\`\`\`
classDiagram
    class 动物 {
        +String 名称
        +int 年龄
        +void 吃()
        +void 睡()
    }
    
    class 狗 {
        +void 吠叫()
    }
    
    class 猫 {
        +void 喵喵叫()
    }
    
    动物 <|-- 狗
    动物 <|-- 猫

类关系符号

<|-- : 继承
*-- : 组合
o-- : 聚合
--> : 关联
-- : 实线连接
..> : 依赖

状态图

注意,不需要反斜杠,这里为了防止被转化才写
\`\`\`mermaid
stateDiagram-v2
    [*] --> 待机
    待机 --> 运行: 启动
    运行 --> 暂停: 暂停按钮
    暂停 --> 运行: 继续按钮
    运行 --> 待机: 停止
    暂停 --> 待机: 停止
    待机 --> [*]
\`\`\`
stateDiagram-v2
    [*] --> 待机
    待机 --> 运行: 启动
    运行 --> 暂停: 暂停按钮
    暂停 --> 运行: 继续按钮
    运行 --> 待机: 停止
    暂停 --> 待机: 停止
    待机 --> [*]

饼图

注意,不需要反斜杠,这里为了防止被转化才写
\`\`\`mermaid
pie
    title 编程语言使用率
    "JavaScript" : 40
    "Python" : 25
    "Java" : 20
    "其他" : 15
\`\`\`
pie
    title 编程语言使用率
    "JavaScript" : 40
    "Python" : 25
    "Java" : 20
    "其他" : 15

小贴士

  • 注释: 使用 %% 添加注释
  • 样式: 使用 style关键字自定义样式
  • 链接: 可以为节点添加点击链接
  • 多行文本: 使用 <br> 换行
  • 主题: 支持多种主题(默认、森林、黑暗等)

资源

官方文档

在线编辑器

GitHub 仓库