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

Mermaid 语法教程

Mermaid 是一种使用 Markdown 风格 语法来绘制流程图、时序图、甘特图等可视化图表的工具。它适用于技术文档、Wiki、开发文档等场景。


1. 安装与使用

1.1 在线使用

  • 直接访问 Mermaid Live Editor。
  • 在 GitHub、Notion、Typora 等支持 Mermaid 的平台上直接书写。

1.2 本地安装

如果要在本地 Markdown 工具或 Web 项目中使用 Mermaid,可以安装它的 npm 包:

npm install -g @mermaid-js/mermaid-cli  # 安装 Mermaid CLI

在 HTML 文件中使用

<script type="module">
  import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs';
  mermaid.initialize({ startOnLoad: true });
</script>

在 Node.js 环境下使用 CLI 生成 SVG

mmdc -i input.mmd -o output.svg

2. 基础语法

2.1 流程图(Flowchart)

示例:

开始
条件判断
执行操作
退出

语法解析:

  • flowchart TD:从上到下绘制(LR 为从左到右)。
  • A[文本]:矩形框,表示开始或结束。
  • B{条件}:菱形,表示判断条件。
  • A --> B:箭头,表示流程。
  • B -->|是| C:带标签的分支。
  • C --> D:流程的连接。
2.1.1 额外形状
形状语法
圆角矩形A((文本))
平行四边形(输入/输出)B[/文本/]
菱形(判断)C{条件}

2.2 时序图(Sequence Diagram)

示例:

用户 服务器 发送请求 返回响应 用户 服务器

语法解析:

  • participant 定义参与者。
  • A->>B: 表示 A 发送消息给 B。
  • B-->>A: 表示 B 回复 A。
  • Note right of B: 这是一条注释 为右侧注释。

2.3 甘特图(Gantt Chart)

示例:

2024-03-01 2024-03-03 2024-03-05 2024-03-07 2024-03-09 2024-03-11 2024-03-13 2024-03-15 需求分析 设计 开发 计划阶段 项目进度

语法解析:

  • title:甘特图标题。
  • section:定义阶段。
  • 任务名称 : 状态, 开始时间, 持续天数
  • done:已完成,active:进行中。

2.4 类图(Class Diagram)

示例:

Animal
+String name
+makeSound()
Dog
+String breed
+bark()

语法解析:

  • classDiagram 定义类图。
  • class 类名 {} 定义类和属性、方法。
  • <|-- 表示继承关系。
  • + 号表示公有属性/方法。

3. 进阶用法

3.1 状态图(State Diagram)

示例:

开始
运行

语法解析:

  • [ * ] 代表起点和终点。
  • --> 定义状态转换。

3.2 饼图(Pie Chart)

示例:

65% 15% 10% 10% 浏览器市场份额 Chrome Edge Firefox Safari

语法解析:

  • title 设置标题。
  • 每个数据项格式为:"名称" : 数值

3.3 实体关系图(ER Diagram)

示例:

CUSTOMER string name int id ORDER LINE-ITEM places contains

语法解析:

  • ||--o{ 表示一对多关系。
  • ||--|{ 表示多对多关系。
  • 类 {} 内部可以定义字段。

4. 总结

图表类型关键字作用
流程图flowchart展示流程逻辑
时序图sequenceDiagram显示消息交互顺序
甘特图gantt项目进度管理
类图classDiagram设计类结构
状态图stateDiagram展示状态转换
饼图pie显示占比
ER 图erDiagram数据库设计

Mermaid 提供了一种直观、简单的方式来绘制图表,使技术文档更加清晰直观!🎯

http://www.dtcms.com/a/109352.html

相关文章:

  • kali中vmtools失效用不了解决方法
  • Leetcode 857 -- 贪心 | 数学
  • 【C语言】整数和浮点数在内存中的存储
  • 使用pkexec 和其策略文件安全提权执行外部程序
  • linux文件上传下载lrzsz
  • LangChain核心解析:掌握AI开发的“链“式思维
  • 【KMP】P4391 [BalticOI 2009] Radio Transmission 无线传输|普及+
  • 蜜蜡是什么?蜜蜡与琥珀的区别以及蜜蜡的收藏价值一览
  • 《AI大模型应知应会100篇》第57篇:LlamaIndex使用指南:构建高效知识库
  • 一篇关于Netty相关的梳理总结
  • 修复SSL证书链不完整问题certificate verify failed unable to get local issuer certificate
  • Java学习总结-io缓冲流
  • [MySQL初阶]MySQL表的操作
  • 【服务日志链路追踪】
  • C语言--回文字符串
  • Spark中排序--前缀排序prefixSort
  • 【人工智能之大模型】在Transformer中,同一个词可以有不同的注意力权重嘛?为什么
  • 鸿蒙NEXT开发缓存工具类(ArkTs)
  • 华为云 云化数据中心 CloudDC | 架构分析与应用场景
  • Java学习总结-Flie-IO流
  • 解决Ubuntu文件夹锁标记
  • 【youcans论文精读】弱监督深度检测网络(Weakly Supervised Deep Detection Networks)
  • Spring Boot 3.4.3 整合 Quartz 定时任务
  • Onloyoffice公式 从指定的数据范围中筛选出符合条件的数据行 放到别的sheet里面
  • Ubuntu 安装eBPF编译环境。
  • 【C++基础知识】odygrd/quill 中编译时计算可变参数个数的原理解析
  • WGAN原理及实现(pytorch版)
  • 简单聊聊机器视觉中常提的2D、2.5D和3D技术
  • Java面试33-fail-safe机制与fail-fast机制分别有什么作用
  • 从代码学习深度学习 - RNN PyTorch版