Mermaid 是文本描述语言,用简单语法定义图表——流程图、时序图、类图、状态图、甘特图、饼图,实现「文本即图形」。

图表类型总览

类型关键字用途
流程图graph / flowchart流程、关系
时序图sequenceDiagram交互流程
类图classDiagram类结构
状态图stateDiagram-v2状态迁移
甘特图gantt项目进度
饼图pie数据占比

渲染方式

流程图

flowchart TD
    A[开始] --> B{条件}
    B -->|是| C[执行]
    B -->|否| D[结束]

方向TD/TB(上下)、LR(左右)、RLBT

节点形状[矩形](圆边矩形){菱形}((圆形))

连接线--> 实线箭头、--- 实线无箭头、-.-> 虚线箭头、==> 粗线箭头、-- 文字 --> 带文字

实战示例(视频篡改检测流程):

graph LR
    A[原始视频] --> B[帧大小序列EFS]
    B --> C[小波多尺度分解]
    C --> D[特征提取]
    D --> E[分类模型]
    F[篡改视频] --> B
    E --> G[原始视频分类]
    E --> H[速度操作检测]

时序图

sequenceDiagram
    participant A as 用户
    participant B as 系统
    A->>B: 请求
    B-->>A: 响应

箭头->>(实线)、-->>(虚线)、->x(带×)

类图

classDiagram
    class Animal {
        +String name
        +eat()
        #sleep()
        -digest()
    }
    Animal <|-- Dog : 继承

可见性+(public)、-(private)、#(protected)

关系<|--(继承)、*--(组合)、o--(聚合)

状态图

stateDiagram-v2
    [*] --> State1
    State1 --> State2 : 事件
    State2 --> [*]

甘特图

gantt
    title 项目计划
    dateFormat YYYY-MM-DD
    section 阶段A
    任务1 :a1, 2023-01-01, 30d

饼图

pie
    title 分布
    "A" : 45
    "B" : 30
    "C" : 25

子图

flowchart TB
    subgraph 系统 [订单处理]
        direction LR
        A[创建] --> B[支付]
    end

样式

classDef 定义样式类,class 将节点归类:

graph TB
    A[输入] --> B[处理]
    B --> C[输出]

    classDef input fill:#9f9,stroke:#333
    classDef output fill:#f99,stroke:#333
    class A input
    class C output