Mermaid 流程图

在线编辑器

在线编辑器: https://www.mermaidchart.com/

流程图示例 (Flowchart Example)

---
title: 一个简单的小例子
---

graph TD

    %% 这是一段注释
    A("开始<br>检查咖啡机是否工作") --> B{有电源吗?};
    B -- 是 --> C{水箱有水吗?};
    B -- 否 --> D[插上电源];
    D --> A;
    C -- 是 --> E1[烧开水];

subgraph 制作咖啡工作流程

    E1--> E2[磨咖啡粉];
    E2 --> E3[煮咖啡];
    E3 --> E4[倒咖啡]

end

    C -- 否 --> F[加水];
    F --- Fnote[请使用纯净水]
    F --> C;
    E4 --> G((完成<br>享用咖啡!));

    %% 1. 定义模拟的内置类样式
    classDef state_error fill:#f8d7da,stroke:#dc3545,stroke-width:2px,color:#dc3545;
    classDef state_primary fill:#cce5ff,stroke:#004085,stroke-width:2px,color:#004085;
    classDef state_success fill:#d4edda,stroke:#155724,stroke-width:2px,color:#155724;
    classDef state_warning fill:#fff3cd,stroke:#856404,stroke-width:2px,color:#856404;
    %% 2. 定义一个备注类:透明背景,无边框,斜体文本
    classDef state_note fill:transparent,stroke:none,font-style:italic,color:#666;

    %% 节点应用样式
    class A state_primary
    class F state_warning
    class G state_success
    class Fnote state_note

file

简明语法手册

核心结构

  • 声明图表类型: 流程图必须以 graph 关键字开头,后面跟着图表的方向。
语法 说明
graph TD Top to Down (从上到下) - 最常用
graph LR Left to Right (从左到右)
graph BT Bottom to Top (从下到上)
graph RL Right to Left (从右到左)

节点 (Node) 定义和形状

  • 流程图中的每个步骤或实体被称为节点
  • 节点的定义格式是:节点ID[节点显示的文本]
  • 节点ID (如 A, B) 只能包含字母和数字,用于连接,不会显示。
  • 节点显示的文本 (如 开始, 处理步骤) 可以包含空格。
语法 形状 描述 示例
ID[文本] 矩形 默认形状,用于处理步骤活动 A[处理数据]
ID(文本) 圆角矩形 用于开始/结束子程序 B(开始)
ID{文本} 菱形 用于判断决策点 C{是/否?}
ID>文本] 旗形 用于延迟/输入/输出 D>输入文件]
ID((文本)) 双圆 另一种用于开始/结束 E((结束))

连接 (Link) 方式

  • 使用箭头符号来连接两个节点,表示流程方向。
语法 描述 示例
ID1 --> ID2 基本连接 (实线箭头) A --> B
ID1 --- ID2 实线连接 (无箭头) B --- C
ID1 -- 描述 -- ID2 带文本标签的连接 A -- Yes -- C
ID1 ==> ID2 粗连接 (粗实线箭头) B ==> D

特殊字符

  • 节点中的换行符使用 <br>
  • 节点中的特殊符号(HTML 保留字符)要使用 html 转义符,或是(Mermaid 保留字符)先简单使用 " 试试
  • 使用 %% 进行注释

样式

使用 classDef 定义样式,然后再使用 class 应用样式,也可以直接使用 class 写样式

下面定义了一些常用样式。

state_note 定义了一个备注使用的样式

    %% 1. 定义模拟的内置类样式
    classDef state_error fill:#f8d7da,stroke:#dc3545,stroke-width:2px,color:#dc3545;
    classDef state_primary fill:#cce5ff,stroke:#004085,stroke-width:2px,color:#004085;
    classDef state_success fill:#d4edda,stroke:#155724,stroke-width:2px,color:#155724;
    classDef state_warning fill:#fff3cd,stroke:#856404,stroke-width:2px,color:#856404;
    %% 2. 定义一个备注类:透明背景,无边框,斜体文本
    classDef state_note fill:transparent,stroke:none,font-style:italic,color:#666;

    %% 节点应用样式
    class A state_primary
    class F state_warning
    class G state_success
    class Fnote state_note
上一篇