Mermaid流程图

news/2024/10/30 11:29:06/

所有流程图都由节点,几何形状和边缘,箭头或线条组成。mermaid代码定义了这些节点和边缘的制作和交互方式。
它还可以容纳不同的箭头类型、多方向箭头以及与子图之间的链接。

1、流程图的方向

  • TB - 从上到下
  • TD - 自上而下/与上到下相同
  • BT - 从下到上
  • RL - 从右到左
  • LR - 从左到右
flowchart TDStart --> Stop
Start
Stop
flowchart LRStart --> Stop
Start
Stop

2、节点形状

  • 具有圆边的节点
flowchart LRid1(This is the text in the box)
This is the text in the box
  • 体育场形节点
flowchart LRid1([This is the text in the box])
This is the text in the box
  • 子例程形状中的节点
flowchart LRid1[[This is the text in the box]]
This is the text in the box
  • 圆柱形节点
flowchart LRid1[(Database)]
Database
  • 圆形节点
flowchart LRid1((This is the text in the circle))
This is the text in the circle
  • 不对称形状的节点
flowchart LRid1>This is the text in the box]
This is the text in the box
  • 菱形
flowchart LRid1{This is the text in the box}
This is the text in the box
  • 六边形节点
flowchart LRid1{{This is the text in the box}}
This is the text in the box
  • 平行四边形
flowchart TDid1[/This is the text in the box/]
This is the text in the box
  • 平行四边形替代
flowchart TDid1[\This is the text in the box\]
This is the text in the box
  • 梯形
flowchart TDA[/Christmas\]
Christmas
  • 梯形替代
flowchart TDB[\Go shopping/]
Go shopping

3、节点之间的链接

节点可以使用链接/边连接。可以具有不同类型的链接或将文本字符串附加到链接。

  • 带箭头的链接
flowchart LRA-->B
A
B
  • 打开的链接
flowchart LRA --- B
A
B
  • 链接上的文字
flowchart LRA-- This is the text! ---B
This is the text!
A
B

flowchart LRA---|This is the text|B
This is the text
A
B
  • 带有箭头和文本的链接
flowchart LRA-->|text|B
text
A
B

flowchart LRA-- text -->B
text
A
B
  • 虚线链接
flowchart LRA-.->B;
A
B
  • 带文本的虚线链接
flowchart LRA-. text .-> B
text
A
B
  • 粗链接
flowchart LRA ==> B
A
B
  • 包含文本的粗链接
flowchart LRA == text ==> B
text
A
B
  • 链式链接
    可以在同一行中声明许多链接,如下所示:
flowchart LRA -- text --> B -- text2 --> C
text
text2
A
B
C

也可以在同一行中声明多个节点链接,如下所示:

flowchart LRa --> b & c--> d
a
b
c
d

以一种非常富有表现力的方式描述依赖项。就像下面的一行:

flowchart TBA & B--> C & D
A
B
C
D

使用基本语法描述相同的关系图,则需要四行

flowchart TBA --> CA --> DB --> CB --> D
A
C
D
B
  • 新的箭头类型
flowchart LRA --o BB --x C
A
B
C
  • 多方向箭头
flowchart LRA o--o BB <--> CC x--x D
A
B
C
D
  • 链接的最小长度
    流程图中的每个节点最终被分配给渲染图中的等级,即根据其链接到的节点分配给垂直或水平级别(取决于流程图方向)。默认情况下,链接可以跨越任意数量的排名,但您可以通过在链接定义中添加额外的短划线来要求任何链接比其他链接长。
    在以下示例中,在从节点 B 到节点 E 的链接中添加了两个额外的短划线,以便它比常规链接跨越两个等级:
flowchart TDA[Start] --> B{Is it?}B -->|Yes| C[OK]C --> D[Rethink]D --> BB ---->|No| E[End]
Yes
No
Start
Is it?
OK
Rethink
End

当链接标签写入链接中间时,必须在链接的右侧添加额外的破折号。以下示例等效于上一个示例:

flowchart TDA[Start] --> B{Is it?}B -- Yes --> C[OK]C --> D[Rethink]D --> BB -- No ----> E[End]
Yes
No
Start
Is it?
OK
Rethink
End
长度123
正常---------
正常箭头–>—>---->
============
粗箭头==>===>====>
-.--. .--…-
带点的箭头-.->-…->-…->

4、 破坏语法的特殊字符

  • 可以将文本放在引号内,以便呈现更复杂的字符。如下例所示:
flowchart LRid1["This is the (text) in the box"]
This is the (text) in the box
  • 用于转义字符的实体代码
    flowchart LRA["A double quote:#quot;"] -->B["A dec char:#9829;"]
A double quote:"
A dec char:♥

5、子图

flowchart TBc1-->a2subgraph onea1-->a2endsubgraph twob1-->b2endsubgraph threec1-->c2end
three
one
c2
c1
two
b2
b1
a2
a1

还可以为子图设置显式 ID

flowchart TBc1-->a2subgraph ide1 [one]a1-->a2end
one
a2
a1
c1

使用graphtype流程图,还可以设置子图的边,如下图所示。

flowchart TBc1-->a2subgraph onea1-->a2endsubgraph twob1-->b2endsubgraph threec1-->c2endone --> twothree --> twotwo --> c2
three
one
c2
c1
two
b2
b1
a2
a1

使用 graphtype 流程图,您可以使用方向语句来设置子图将呈现的方向,如本例所示

flowchart LRsubgraph TOPdirection TBsubgraph B1direction RLi1 -->f1endsubgraph B2direction BTi2 -->f2endendA --> TOP --> BB1 --> B2
TOP
B1
f1
i1
B2
f2
i2
A
B

6、注释

注释可以在流程图中输入,解析器将忽略该流程图。注释需要位于自己的行中,并且必须以(双百分号)开头。注释开始到下一个换行符之后的任何文本都将被视为注释,包括任何流语法%%

flowchart LR
%% this is a comment A -- text --> B{node}A -- text --> B -- text2 --> C
text
text2
A
B
C

7、样式和类

7.1 设置节点样式

flowchart LRid1(Start)-->id2(Stop)style id1 fill:#f9f,stroke:#333,stroke-width:4pxstyle id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
Start
Stop

8、顶点和链接之间有空格且不带分号的图形声明

在图形声明中,语句现在也可以不带分号结尾。在 0.2.16 版本之后,用分号结束图形语句只是可选的。因此,下面的图形声明与图形的旧声明一起也是有效的。
顶点和链接之间允许使用单个空格。但是,顶点与其文本以及链接与其文本之间不应有任何空格。图形声明的旧语法也可以使用,因此这个新功能是可选的,引入以提高可读性。

flowchart LRA[Hard edge] -->|Link text| B(Round edge)B --> C{Decision}C -->|One| D[Result one]C -->|Two| E[Result two]
Link text
One
Two
Hard edge
Round edge
Decision
Result one
Result two

参考:流程图 - 基本语法


http://www.ppmy.cn/news/63022.html

相关文章

数据指标中心业务策略的闭环

分析数据定位业务问题&#xff0c;基于业务理解&#xff0c;确定解决策略&#xff0c;到最终正向的影响业务&#xff0c;整个过程中&#xff0c;业务策略存在两个闭环&#xff1a;逻辑闭环和业务闭环。 逻辑闭环&#xff1a; 数据分析的过程&#xff0c;逻辑上要闭环&#xff…

《python爬虫练习》之随机的User-Agent请求头

1. 背景&#xff1a; 大数据时代&#xff0c;互联网上很多的数据需要被爬取然后进行筛选&#xff0c;就可以被我们所利用&#xff0c;在这个过程中反爬技术也应运而生&#xff0c;互联网之间的攻防战一直在不断升级。那么我们在爬取数据的时候&#xff0c;自然需要进行伪装&am…

软件工程的基础

软件危机软件工程软件工程是将系统化的&#xff0c;严格约束的&#xff0c;可量化的方法应用于软件的开发&#xff0c;运行和维护&#xff0c;将工程应用于软件。 软件工程的三个要素&#xff1a;方法&#xff0c;工具&#xff0c;过程软件的生命周期&#xff0c;是指从从软…

Databend 开源周报第 92 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 在 WHERE 子句中…

每天一道算法练习题--Day22 第一章 --算法专题 --- ----------最大公约数

关于最大公约数有专门的研究。 而在 LeetCode 中虽然没有直接让你求解最大公约数的题目。但是却有一些间接需要你求解最大公约数的题目。 如何求最大公约数&#xff1f; 定义法 def GCD(a: int, b: int) -> int:smaller min(a, b)while smaller:if a % smaller 0 and b …

基于Linux系统在线安装RabbitMQ

一、前言 二、Erlang下载安装 三、RabbitMQ下载安装 三、RabbitMQ Web界面管理 一、前言 本次安装使用的操作系统是Linux centOS7。 二、Erlang下载安装 在确定了RabbitMQ版本号后&#xff0c;先下载安装Erlang环境。下面演示操作过程&#xff1a; Erlang下载链接&#…

centOS7忘记登录密码该如何重新修改登录密码

文章目录 前言一、重新修改登录密码1.1、第一步1.2、第二步1.3、第三步1.4、第四步1.5、第五步1.6、第六步1.7、第七步1.8、第八步 前言 忘记密码并不可怕&#xff0c;只要学会方法&#xff0c;密码随时都可以找回。 一、重新修改登录密码 1.1、第一步 当打开centOS7之后忘记…

OpenCV中的图像处理3.7-3.8(五)边缘检测、图像金字塔

目录 3.7 边缘检测目标理论OpenCV中的Canny边缘检测其他资源练习 3.8 图像金字塔目标理论使用金字塔进行图像混合其他资源 翻译及二次校对&#xff1a;cvtutorials.com 编辑者&#xff1a;廿瓶鲸&#xff08;和鲸社区Siby团队成员&#xff09; 3.7 边缘检测 目标 在本章中&a…