开发人员必备工具!mermaid的详细教学

一、Mermaid简介

Mermaid 是一个基于 JavaScript 的图表绘制库,它可以用于创建流程图、状态图、时序图以及甘特图等各种类型的图表。它以 HTML 形式渲染图表,而不是生成静态图片,这使得它更加灵活和安全。

  • 项目地址Mermaid 官方项目地址

  • 项目应用:Mermaid 用于在 web 环境中创建各种类型的图表。它可以用于文档、技术博客、项目文档等等,特别适合于与 Markdown 结合使用。Mermaid 可以帮助用户以直观的方式展示各种流程、状态、时序等信息,从而提高文档的可读性和可理解性。

二、mermaid的使用方法

1、流程图

当使用Mermaid创建流程图时,我们可以按照以下步骤进行操作。

步骤语法示例说明
1. 定义流程图方向graph 方向描述方向描述可以是:TB(从上到下)、BT(从下到上)、RL(从右到左)、LR(从左到右)
2. 定义节点id[文字] id(文字) id((文字)) id>文字] id{文字}用于定义不同类型的节点,如矩形、圆角矩形、圆形、旗帜状节点、菱形节点等
3. 连接节点id1-->id2 id1-.->id3 id1-.text.->id4 id1==text==>id5通过箭头连接节点,可以选择添加箭头类型和文字
4. 添加子图表subgraph 子图表名称 子图表中的描述语句... end可以在图表中添加子图表以组织复杂信息

下面是一个示例,演示如何使用Mermaid创建一个简单的流程图:

graph TB
    A[开始] --> B[处理]
    B --> C[判断]
    C --是--> D[结束]
    C --否--> E[处理]
    E --> B

这个流程图的语法解释如下:

  1. 第一步,定义了一个从上到下(Top to Bottom)的流程图。

  2. 接着定义了四个节点:A、B、C、D,分别代表开始、处理、判断和结束。

  3. 使用箭头连接了这些节点,箭头表示流程的方向。

  4. 判断节点C的两个分支,如果是,流程走向结束节点D,如果否,流程回到处理节点B。

2、序列图

当使用Mermaid创建序列图时,我们可以按照以下步骤进行操作。

步骤语法示例说明
1. 开始序列图sequenceDiagram用于开始一个序列图
2. 定义参与者participant 参与者1 participant 参与者2用于定义参与者,可以为其指定简称
3. 描述消息传递[参与者1][消息线][参与者2]:消息体用于描述消息的发送者、接收者以及消息内容
4. 处理中状态[参与者]+[参与者]-在消息线末尾添加+表示消息接收者进入“处理中”状态,添加-表示离开“处理中”状态
5. 标注Note 位置表述 参与者: 标注文字用于在图中添加标注信息
6. 循环loop 循环的条件 循环体描述语句 end用于创建循环结构
7. 判断alt 条件 1 描述 分支 1 描述语句 else 条件 2 描述 分支 2 描述语句 end用于创建条件分支结构

下面是一个示例,演示如何使用Mermaid创建一个简单的序列图:

sequenceDiagram
    participant A as 张三
    participant B as 李四
    A->>B: 吃了吗?
    B->>A: 吃了

这个序列图的语法解释如下:

  1. 第一步,开始一个序列图。

  2. 定义了两个参与者,分别为张三(A)和李四(B)。

  3. 通过A->>B: 吃了吗?描述了张三向李四发送了一个消息:“吃了吗?”。

  4. 紧接着,通过B->>A: 吃了描述了李四的回复:“吃了”。

  5. 整个序列图结束。

3、ER图

当使用Mermaid创建架构图时,我们可以按照以下步骤进行操作。以下是一个简单的表格,用于展示Mermaid架构图的基本教学:

步骤语法示例说明
1. 开始架构图graph LR 子图表中的描述语句... end用于开始一个架构图
2. 定义节点id1(节点1) id2(节点2)用于定义节点,可以带有文字描述
3. 连接节点id1 --> id2 id1 --- id2 id1 ==> id2用于连接节点,可以选择箭头类型
4. 添加子图表subgraph 子图表名称 子图表中的描述语句... end可以在图表中添加子图表以组织复杂信息

下面是一个示例,演示如何使用Mermaid创建一个简单的架构图:

graph LR
    A(用户界面) --> B(服务器)
    B --> C(数据库)
    C --> B
    B --> A

这个架构图的语法解释如下:

  1. 第一步,开始一个架构图。

  2. 定义了三个节点:用户界面(A)、服务器(B)和数据库(C)。

  3. 通过箭头连接了这些节点,表示了它们之间的关系。

三、Mermaid的应用实例

以下是一个智能家居系统的架构图也是通过mermaid语法进行的生成

graph TD;
    subgraph 用户界面
        A[智能手机] -->|MQTT消息| B[消息代理器]
        B -->|App控制| C[树莓派1]
        B -->|App控制| D[树莓派2]
    end
 subgraph 树莓派设备
        C -->|设备控制| E[智能灯1]
        C -->|设备控制| F[智能插座1]
        D -->|设备控制| G[智能灯2]
        D -->|设备控制| H[智能插座2]
        E -->|实时状态| B
        F -->|实时状态| B
        G -->|实时状态| B
        H -->|实时状态| B
    end
subgraph MQTT服务器
        I[MQTT服务器] -.->|消息传递| B
    end

解释:

  • 用户通过智能手机界面向MQTT服务器发送控制指令。

  • MQTT服务器负责接收用户的控制指令,并将其传递给相应的树莓派设备。

  • 树莓派设备控制智能灯和插座,并将实时状态反馈给MQTT服务器。

  • 智能手机界面与MQTT服务器之间使用MQTT协议进行通信。

  • 树莓派设备与MQTT服务器之间也使用MQTT协议进行通信。

不管是系统分析系统设计、软件工程都需要用到uml,mermaid提供了一种代码绘图的方式,为学习和开发都带来了很大的遍历

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yolililjin

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

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

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

打赏作者

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

抵扣说明:

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

余额充值