当前位置: 首页 > backend >正文

Markdown 使用 mermaid 绘制图

“mermaid 代码块”其实是 Markdown 中用于展示代码的语法,用三个反引号(```)包裹内容。如果代码块指定的语言是 mermaid,并且你的编辑器支持 Mermaid 渲染,它就能自动生成流程图、时序图等图形。


1. Mermaid 是什么?

Mermaid 是一个基于 JavaScript 的图表生成库,允许你用文本语法(类似 Markdown)生成流程图、时序图、甘特图等。它的核心优势是代码即图形,适合在 Markdown 文档中直接编写图表。


2. 为什么代码块能渲染成图?

  • Markdown 扩展功能:支持 Mermaid 的编辑器(如 Typora、VS Code 的 Mermaid 插件、Obsidian、Mermaid Live Editor 等)会自动解析 mermaid 代码块并渲染成图形。
  • 语法解析:Mermaid 的语法类似伪代码,定义节点和连接关系,最终通过浏览器或编辑器渲染成矢量图(SVG)。

3. 类似的技术或工具

除了 Mermaid,还有一些工具可以通过代码生成图形:

工具/语言特点
PlantUML用文本描述 UML 图(类图、时序图、用例图等),需安装 Java 和插件。
Graphviz用 DOT 语言生成拓扑图,适合复杂的数据流或结构图。
Draw.io (diagrams.net)拖拽式工具,但支持导出 XML 格式嵌入文档。
Viz.js基于 Graphviz 的 Web 实现,支持在 Markdown 中用 DOT 语法绘图。
LaTeX TikZ适合学术论文,用 LaTeX 代码绘制高质量矢量图(学习曲线陡峭)。

4. Mermaid 的更多技巧

(1) 流程图(Flowchart)
```mermaid
graph LRA[开始] --> B{条件判断}B -- 条件为真 --> C[执行操作]B -- 条件为假 --> D[跳过操作]C --> E[结束]D --> E
\\```
条件为真
条件为假
开始
条件判断
执行操作
跳过操作
结束
(2) 时序图(Sequence Diagram)
```mermaid
sequenceDiagram用户 ->> 服务器: 请求数据服务器 -->> 数据库: 查询数据库 -->> 服务器: 返回结果服务器 -->> 用户: 显示数据
\\```
用户 服务器 数据库 请求数据 查询 返回结果 显示数据 用户 服务器 数据库
(3) 甘特图(Gantt Chart)
```mermaid
gantttitle 项目时间表dateFormat  YYYY-MM-DDsection 阶段一任务1       :a1, 2024-01-01, 30d任务2       :a2, 2024-02-01, 20dsection 阶段二任务3       :a3, 2024-03-01, 15d
\\```
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 任务1 任务2 任务3 阶段一 阶段二 项目时间表
(4) 饼图(Pie Chart)
```mermaid
pietitle 占比分析"项目A" : 25"项目B" : 35"项目C" : 40
\\```
25% 35% 40% 占比分析 项目A 项目B 项目C
(5) 类图(Class Diagram)
```mermaid
classDiagramclass Animal {+String name+makeSound()}class Dog {+bark()}class Cat {+meow()}Animal <|-- DogAnimal <|-- Cat
\\```
Animal
+String name
+makeSound()
Dog
+bark()
Cat
+meow()

5. 注意事项

  1. 环境支持:确保编辑器支持 Mermaid(如 Typora 需启用 Mermaid 实验功能,VS Code 需安装插件)。
  2. 语法差异:不同版本的 Mermaid 语法可能略有不同,建议参考官方文档 Mermaid 官网。
  3. 调试技巧:如果图形不显示,检查语法是否正确,或尝试在 Mermaid Live Editor 中测试。

6. 学习资源

  • 官方文档:Mermaid 官方教程
  • 在线编辑器:Mermaid Live Editor(实时预览)
  • VS Code 插件:安装 Mermaid PreviewMermaid Syntax Highlighting
http://www.xdnf.cn/news/14488.html

相关文章:

  • 基于Webserver的数据采集
  • Redis Cluster集群机制原理
  • 安卓9.0系统修改定制化____支持安卓9.0系统修改的一些解包 打包工具解析 基础篇 三
  • TC3xx学习笔记-启动过程详解(二)
  • 最新文章 支持一下!!
  • Datawhale---AI办公实践与应用---Cpt2-用讯飞智文做一个小案例
  • 一个高质量的社交电商APP客户端UI解决方案
  • Nginx 配置中·IP地址变量
  • 深度学习的优化⽅法
  • 李沐--动手学深度学习 LSTM
  • 父亲节:传承孝道,守护亲情
  • MySQL 数据库自动备份批处理工具介绍
  • Vue 项目路由模式全解析:从 hash 到 history 再到 abstract
  • Podman 安装与运行 Nginx 容器完整指南(含访问验证)
  • 北斗导航 | 基于matlab的提升卫星导航单点定位精度的算法总结
  • 2022年以来大模型技术及生态发展汇总文档
  • MongoDB文档查询:从基础到进阶的探索之旅
  • 【Dify系列】【一】【安装与部署】【ubuntu22.04安装docker部署dify1.4.2】
  • 先理解软件工程,再谈AI辅助研发
  • 如何在软件公司推行狼性文化?可能存在哪些困难?
  • VSCODE + EIDE 下 STM32 编程使用部分外设无法通过编译:undefined reference to ‘xxx‘
  • 智芯协同:AI与智能硬件产业深度前瞻
  • 综述|探究深度学习在园艺研究中的应用
  • 基础知识-军品软件六性
  • MCP案例 - 数据可视化客户端
  • Python基础教学:航天工程领域的精确计算和金融领域的精确计算,分别采用的小数保留位数的方法有哪些?有什么区别?-由Deepseek产生
  • 思科基本理论
  • 高标准通信,Ethercat与CANopen网关服务制药工厂生产线实际方案
  • Qt如何生成和使用DLL动态链接库
  • 大语言模型:提示词决定自我反思效果: “检查回答是否错误” “验证回答是否正确”