首页 / 技术分享 / Markdown 流程图 /
Markdown 流程图语法指南

Markdown 流程图语法指南

码不停提

2026-02-05
17 次浏览
0 条评论

通过本指南,你可以掌握在 Markdown 中绘制流程图的基本语法和高级技巧。实践是学习的最好方式,建议从简单的流程图开始,逐步尝试更复杂的结构。

Markdown 流程图
Markdown
流程图
分享:

流程图简介

Markdown 中绘制流程图主要使用 Mermaid 语法。Mermaid 是一个基于 JavaScript 的图表绘制工具,支持流程图、时序图、甘特图等多种图表类型。大多数 Markdown 编辑器(如 Typora、VS Code 的 Markdown 预览增强插件等)和在线平台(如 GitHub、GitLab)都支持 Mermaid。

基本语法结构

在 Markdown 中使用 Mermaid 绘制流程图,需要将代码包裹在 ```mermaid 代码块中:

```mermaid
graph TD
    A[开始] --> B[处理流程]
    B --> C{判断条件}
    C -->|是| D[执行操作]
    C -->|否| E[其他操作]
    D --> F[结束]
    E --> F
```

流程图方向

使用关键词定义流程图的方向:

语法 方向 说明
graph TD 从上到下 (Top-Down) 最常用的方向
graph LR 从左到右 (Left-Right) 水平流程图
graph RL 从右到左 (Right-Left) 反向水平
graph BT 从下到上 (Bottom-Top) 反向垂直

示例:

graph LR
    A --> B
    B --> C

节点定义

1. 基本节点

graph TD
    A
    B[矩形节点]
    C(圆角矩形)
    D((圆形))
    E{菱形}
    F>不对称图形]
    H{{六边形}}

2. 节点语法

  • 默认节点:节点名称
  • 矩形节点:节点名称[显示文本]
  • 圆角矩形:节点名称(显示文本)
  • 圆形:节点名称((显示文本))
  • 菱形:节点名称{显示文本}
  • 不对称图形:节点名称>显示文本]
  • 六边形:节点名称{{显示文本}}

连接线样式

1. 基本连接线

graph LR
    A --> B
    A -- 文本 --> B
    A --- B
    A -.- B
    A -.-> B
    A -. 文本 .-> B
    A ==> B
    A == 文本 ==> B

2. 连接线长度

可以通过增加 -= 的数量调整连接线长度:

graph LR
    A ---- B
    A ===== B

3. 多方向连接

含义:A连接到B和C,然后B和C都连接到D

graph TD
    A --> B & C--> D


    X --> Y
    X --> Z

子图(子流程)

使用 subgraph 定义子流程:

```mermaid
graph TB
    A[开始] --> B{判断}

    subgraph 子流程1 [数据处理]
        C[提取数据]
        D[清洗数据]
        C --> D
    end

    subgraph 子流程2 [分析]
        E[统计分析]
        F[生成报告]
        E --> F
    end

    B -->|是| 子流程1
    B -->|否| 子流程2
    D --> G[结束]
    F --> G
```

实际效果:

graph TB
    A[开始] --> B{判断}

    subgraph 子流程1 [数据处理]
        C[提取数据]
        D[清洗数据]
        C --> D
    end

    subgraph 子流程2 [分析]
        E[统计分析]
        F[生成报告]
        E --> F
    end

    B -->|是| 子流程1
    B -->|否| 子流程2
    D --> G[结束]
    F --> G

样式自定义

1. 节点样式

graph LR
    A[开始]:::startclass
    B{判断}:::conditionclass
    C[结束]:::endclass

    classDef startclass fill:#9f9,stroke:#333,stroke-width:2px;
    classDef conditionclass fill:#f9f,stroke:#333,stroke-width:2px;
    classDef endclass fill:#f96,stroke:#333,stroke-width:4px;

    A --> B --> C

2. 链接样式

graph LR
    A -->|普通连接| B
    A -.->|虚线连接| C
    A ==>|粗线连接| D

    linkStyle 0 stroke:#f66,stroke-width:2px;
    linkStyle 1 stroke:#66f,stroke-width:2px,stroke-dasharray: 5 5;
    linkStyle 2 stroke:#6f6,stroke-width:4px;

注释

在 Mermaid 中使用 %% 添加注释:

graph TD
    A[开始] --> B
    %% 这是一条注释
    B --> C{判断}
    C -->|条件成立| D[执行操作]
    C -->|不成立| E[跳过]

综合示例

以下是一个完整的流程图示例:

```mermaid
graph TD
    %% 用户登录流程
    Start[用户访问系统] --> LoginPage[显示登录页面]
    LoginPage --> Input[用户输入凭据]
    Input --> Validate{验证输入}

    Validate -->|无效| ShowError[显示错误信息]
    ShowError --> Input

    Validate -->|有效| Auth{身份验证}

    Auth -->|失败| AuthFail[认证失败]
    AuthFail --> LogFail[记录失败日志]
    LogFail --> ShowError

    Auth -->|成功| AuthSuccess[认证成功]
    AuthSuccess --> CheckRole{检查用户角色}

    CheckRole -->|管理员| AdminPage[跳转管理后台]
    CheckRole -->|普通用户| UserPage[跳转用户主页]
    CheckRole -->|访客| GuestPage[跳转访客页面]

    AdminPage --> End[流程结束]
    UserPage --> End
    GuestPage --> End

    %% 样式定义
    classDef startend fill:#e1f5e1,stroke:#4caf50,stroke-width:2px;
    classDef process fill:#e3f2fd,stroke:#2196f3,stroke-width:2px;
    classDef decision fill:#fff3e0,stroke:#ff9800,stroke-width:2px;
    classDef error fill:#ffebee,stroke:#f44336,stroke-width:2px;

    class Start,End startend;
    class LoginPage,Input,ShowError,AuthSuccess,AdminPage,UserPage,GuestPage,LogFail process;
    class Validate,Auth,CheckRole decision;
    class AuthFail,ShowError error;
```

注意事项

  1. 兼容性:确保你的 Markdown 编辑器或平台支持 Mermaid
  2. 节点ID:节点ID不能包含空格,建议使用英文或拼音
  3. 文本转义:如果文本中包含特殊字符,可以用双引号包裹:A["特殊字符: < >"]
  4. 代码结构:保持代码缩进可读性,虽然 Mermaid 不要求严格缩进
  5. 在线测试:可以使用 Mermaid Live Editor 在线测试流程图
  6. 本站在线工具:本站也提供了 云信益站-在线工具 - Mermaid 在线测试工具

工具推荐

  1. Typora:优秀的 Markdown 编辑器,内置 Mermaid 支持
  2. VS Code:安装 "Markdown Preview Enhanced" 插件
  3. Mermaid Live Editor:在线编辑和预览
  4. GitHub/GitLab:多数代码托管平台原生支持 Mermaid

评论区 (0)

你需要先 登录 后才能发表评论。
还没有人评论,赶快成为第一个吧。