【在 Typora 的 Mermaid 代码块实现流程图】


Mermaid 是一种基于文本的图表绘制工具,使用简单的 Markdown 风格语法,可以轻松创建 流程图、甘特图、序列图、状态图 等。它广泛用于 Markdown 编辑器(如 Typora)、文档系统(如 Obsidian)、Wiki(如 GitHub Wiki) 以及网页应用中。


1. 流程图(Flowchart)

Mermaid 的流程图支持 方向、条件判断、循环、子流程等

📌 基本流程图

开始
条件判断
执行操作
结束
📝 说明
graph TD  
  A[开始] --> B{条件判断}  
  B -- 是 --> C[执行操作]  
  B -- 否 --> D[结束]  
  C --> D
  • graph TDTD 表示 从上到下(Top to Down),还可以用 LR(从左到右)。
  • A[文本]矩形 节点。
  • B{文本}菱形(条件判断)。
  • -->:表示普通的箭头连接。
  • -- 文字 -->:箭头上带文本。

📌 复杂流程图

成功
失败
重试
终止
用户请求
服务器
错误处理
结束
📝 说明
graph LR  
  A[用户请求] -->|成功| B(服务器)  
  A -->|失败| C{错误处理}  
  C -->|重试| A  
  C -->|终止| D[结束]
  • B(文本):表示圆角矩形
  • {文本}条件判断(菱形)。
  • |文本|箭头上带文字

2. 序列图(Sequence Diagram)

用于描述 系统中各个对象之间的交互过程

用户 服务器 数据库 发送请求 查询数据库 返回数据 返回结果 用户 服务器 数据库
📝 说明
sequenceDiagram
  participant A as 用户
  participant B as 服务器
  participant C as 数据库

  A->>B: 发送请求
  B->>C: 查询数据库
  C-->>B: 返回数据
  B-->>A: 返回结果
  • participant A as 名称:定义 参与者
  • A->>B: 消息从 A 发送消息到 B
  • B-->>A: 返回消息B 发送返回消息到 A(虚线表示返回)。
  • ->>:实线表示主动调用,-->> 表示响应或返回数据。

3. 甘特图(Gantt Chart)

用于 任务管理和项目进度可视化

2024-01-07 2024-01-14 2024-01-21 2024-01-28 2024-02-04 2024-02-11 2024-02-18 2024-02-25 2024-03-03 2024-03-10 需求调研 需求确认 后端开发 前端开发 内测 公测 需求分析 开发阶段 测试阶段 项目进度
📝 说明
gantt
  title 项目进度
  dateFormat YYYY-MM-DD
  section 需求分析
    需求调研:done, 2024-01-01, 2024-01-10
    需求确认:active, 2024-01-11, 2024-01-15
  section 开发阶段
    后端开发: 2024-01-16, 2024-02-15
    前端开发: 2024-02-01, 2024-02-20
  section 测试阶段
    内测: 2024-02-21, 2024-02-28
    公测: 2024-03-01, 2024-03-10
  • title:甘特图标题。
  • dateFormat:日期格式。
  • section:任务分区。
  • 任务名称: 状态, 开始日期, 结束日期
    • done:已完成
    • active:进行中

4. 状态图(State Diagram)

用于描述 状态转换

启动
用户操作
继续
停止
空闲
运行
暂停
📝 说明
stateDiagram
  [*] --> 空闲
  空闲 --> 运行 : 启动
  运行 --> 暂停 : 用户操作
  暂停 --> 运行 : 继续
  运行 --> [*] : 停止
  • [ * ]:表示 开始状态终止状态
  • 状态A --> 状态B : 事件状态转换

5. 类图(Class Diagram)

用于描述 面向对象的类结构

+姓名
+年龄
+说话()
学生
+学号
+上课()
📝 说明
classDiagram
  class 人 {
    +姓名
    +年龄
    +说话()
  }
  class 学生 {
    +学号
    +上课()
  }<|-- 学生
  • class 类名 {}:定义类。
  • + 表示 公共(public) 方法或属性。
  • 类A <|-- 类B:表示 继承关系

6. 实体关系图(ER Diagram)

User Order Product places contains
📝 说明
erDiagram
  User ||--o{ Order : places
  Order ||--|{ Product : contains

erDiagram 语法不支持中文

  • ||--o{一对多 关系。
  • ||--||一对一 关系。

7. 饼图(Pie Chart)

40% 35% 25% 市场份额 苹果 安卓 其他
📝 说明
pie
  title 市场份额
  "苹果" : 40
  "安卓" : 35
  "其他" : 25

8. 其他 Mermaid 语法

📌 定义子图(子流程)

子流程2
子流程1
D
C
B
A
📝 说明
graph TD
  subgraph 子流程1
    A --> B
  end
  subgraph 子流程2
    C --> D
  end
  B --> C

子流程subgraph)可以组织流程图,使其更清晰。


📌 使用 ID 连接

自定义 ID
另一个 ID
📝 说明
graph TD
  id1["自定义 ID"] --> id2["另一个 ID"]

ID 可以用于在不同子图之间创建连接。


9. Mermaid 主题与样式

📌 1. 如何使用 themeVariables 自定义样式?

在 Mermaid 代码开头,使用 %%{init: {...}}%% 进行自定义:

开始
判断
操作1
操作2
结束

🔹 说明

  • theme: 'base' → 主题风格(也可用 defaultdarkforest 等)。
  • primaryColor: 'white'节点背景白色
  • primaryBorderColor: 'black'节点边框黑色
  • primaryBorderWidth: 3边框加粗

📌 2. Mermaid themeVariables 全部参数

✨ 核心参数

参数作用示例值
theme主题风格'default', 'base', 'dark', 'forest'
primaryColor主要节点背景颜色'white', '#ffcc00'
primaryTextColor主要节点文本颜色'black', '#333333'
primaryBorderColor主要节点边框颜色'black', '#666666'
primaryBorderWidth主要节点边框宽度1, 3, 5
lineColor连接线颜色'black', '#999999'
secondaryColor次要节点背景色'lightgray', '#f0f0f0'
tertiaryColor第三级节点背景色'lightblue', '#add8e6'

✨ 文本 & 字体

参数作用示例值
textColor全局文本颜色'black', 'gray'
fontSize字体大小12px, 16px, 20px
fontFamily字体'Arial', 'Courier New', 'Verdana'

✨ 箭头 & 线条

参数作用示例值
edgeColor箭头颜色'black', '#333333'
edgeLabelBackground箭头标签背景'white', '#ffcc00'
arrowheadColor箭头颜色'black', 'blue'
lineWidth线条宽度1, 2, 3
lineHeight线条高度1.2, 1.5

✨ 特殊节点

参数作用示例值
nodeBackground普通节点背景色'white', '#f0f0f0'
nodeBorderColor普通节点边框色'black', '#666666'
nodeBorderWidth普通节点边框宽度1, 2, 3
altBackground交替行背景色(表格)'lightgray', '#f0f0f0'

📌 3. Mermaid 主题风格

Mermaid 预设了几种主题,你可以在 theme 里指定:

主题说明
default默认主题(浅色背景)
dark深色主题
forest绿色森林风格
base自定义基础主题

示例

开始
判断
操作1
操作2
结束

📌 4. Mermaid 主题自定义示例

🎨 方案 1:白色背景,黑色边框
%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': 'white', 'primaryBorderColor': 'black', 'primaryBorderWidth': 3, 'textColor': 'black', 'edgeColor': 'black'}}}%%
graph TD
  A[开始] --> B{判断}
  B -->|| C[操作1]
  B -->|| D[操作2]
  C --> E[结束]
  D --> E
开始
判断
操作1
操作2
结束
🎨 方案 2:黑色背景,白色文本
%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': 'black', 'primaryTextColor': 'white', 'primaryBorderColor': 'white', 'primaryBorderWidth': 2, 'textColor': 'white', 'edgeColor': 'white'}}}%%
graph TD
  A[开始] --> B{判断}
  B -->|| C[操作1]
  B -->|| D[操作2]
  C --> E[结束]
  D --> E
开始
判断
操作1
操作2
结束
🎨 方案 3:蓝色背景,橙色边框
%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#1E90FF', 'primaryBorderColor': '#FFA500', 'primaryBorderWidth': 3, 'textColor': 'white'}}}%%
graph TD
  A[开始] --> B{判断}
  B -->|| C[操作1]
  B -->|| D[操作2]
  C --> E[结束]
  D --> E
开始
判断
操作1
操作2
结束

总结

类型语法
流程图graph TD/LR
序列图sequenceDiagram
甘特图gantt
状态图stateDiagram
类图classDiagram
实体关系图erDiagram
饼图pie

Mermaid 语法简单易懂,适用于 项目管理、软件架构设计、数据建模等,可以在 Typora、Obsidian、GitHub Wiki 等工具中使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ztiddler

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值