Markdown Mermaid 图表示例
Mermaid 流程图、时序图、类图、状态图、甘特图、饼图与 ER 图,每张都给出最小可用写法与渲染结果,顺便验证图表集成与点击放大。
613 字
图表用 mermaid 代码块写,语法就是 Mermaid 官网那一套。构建时它先被转成一个占位容器,页面加载后由浏览器渲染成 SVG;成图可以点右上角放大,明暗主题切换时会自动重绘。下面每种图表都给一段最小可用的写法,跟着渲染结果对照就能上手。
流程图
最常用的一种。[] 是矩形、{} 是判断、() 是圆角,箭头上的文字写在 -- 文字 --> 里:
flowchart TD
A[写一篇带图表的文章] --> B{需要画图吗}
B -- 需要 --> C[写 mermaid 代码块]
B -- 不需要 --> D[正常写正文]
C --> E[浏览器渲染成 SVG]
E --> F[点右上角的放大镜]
TD 是自上而下,也可以写 LR(从左到右)、BT、RL。
时序图
参与者用 participant 起别名,->> 是实线箭头、-->> 是虚线;autonumber 自动编号:
sequenceDiagram
autonumber
participant U as 读者
participant P as 文章页
participant M as Mermaid
U->>P: 打开文章
P->>M: 传入图表源码
M-->>P: 返回 SVG
P-->>U: 显示图表
类图
+ 表示 public、- 表示 private,--> 画依赖,冒号后面是关系标签:
classDiagram
class Diagram {
+String type
+render() SVG
}
class Lightbox {
+open(svg)
+close()
}
Diagram --> Lightbox : 点击放大
状态图
[*] 是起点和终点,箭头上的文字用 : 描述 写:
stateDiagram-v2
[*] --> Idle
Idle --> Rendering: 页面加载
Rendering --> Done: 渲染成功
Rendering --> Failed: 语法错误
Failed --> Rendering: 改好再试
Done --> [*]
甘特图
dateFormat 决定日期怎么写,任务行是 名称: 状态, id, 开始日期, 时长,after a1 表示接在上一项之后:
gantt
title 图表功能的排期
dateFormat YYYY-MM-DD
axisFormat %m-%d
section 接入
安装与配置: done, a1, 2026-10-01, 3d
代码块转换: done, a2, after a1, 2d
section 交互
灯箱与遮罩: active, b1, 2026-10-06, 4d
移动端适配: b2, after b1, 3d
饼图
showData 会把数值和百分比一起标出来,每行一条 "名称" : 数值:
pie showData
title 文章里的图表类型分布
"流程图" : 45
"时序图" : 25
"类图" : 15
"其他" : 15
ER 图
||--o{ 表示「一 对 多」,实体下面的花括号里写字段,PK 标记主键:
erDiagram
POST ||--o{ DIAGRAM : contains
POST {
string slug PK
string title
}
DIAGRAM {
string type
string source
}
几点使用经验
- 代码块语言写
mermaid,其它语言的代码块仍然交给 Expressive Code 高亮,两者互不影响。 - 渲染发生在浏览器里,所以图表越多,首屏之后浏览器要做的排版越多;一篇文章里放三五张通常没问题,几十张就该考虑拆篇。
- 主题跟随站点:切换明暗会整页重绘图表,配色不用自己维护。
- 点右上角放大:每张图右上角有一个放大镜按钮(图表本体不可点,选文字不会误触)。点开后是带遮罩的灯箱,弹窗始终在屏幕中央。灯箱左上角可以缩小、放大、恢复默认比例,也支持滚轮缩放与双指捏合;放大后拖动查看,松手位置会保持居中。
×、Esc、点击遮罩都能关闭。 - 语法错误不会让构建失败:写错的图表会在原位显示 Mermaid 的错误信息,改好再刷新即可。
- 主题、是否跟随明暗、角标放大等开关都在
src/config/mermaid.ts。
版权声明
本文由 XiaYe 创作,采用 CC BY-NC-SA 4.0 许可协议;转载请注明出处。
- 作者
- XiaYe
- 发布于
- 许可协议
- CC BY-NC-SA 4.0
分享这篇文章:
相关文章
评论
留下你的想法,或看看别人说了什么。