markdown mermaid流程图
流程图
所有流程图都由节点、几何图像、箭头或线条组成。 mermaid代码定义了这些节点和边的制作和交互方式。可以有不同的箭头类型、多向箭头以及与子图的连接。
节点
节点
flowchart LR
id
id
带文字的节点
可以在框中设置与id不同的文本。如果多次这样做,将使用的节点的最后一个文本。另外,如果稍后为节点定义边,则可以省略文本定义。之前定义的将在呈现框时使用。
flowchart LR
node[id text]
node[id text]
节点形状
| 图形 | 示例 | 备注 |
|---|---|---|
| 方形 | id[方形] | |
| 圆角 | id(圆角) | |
| 圆形 | id((圆)) | |
| 体育场 | id([体育场]) | |
| 圆柱 | id[(圆柱)] | 可以表示数据库 |
| 子程序 | id[[子程序]] | |
| 不对称 | id>不对称] | |
| 菱形 | id{条件} | 可以作为判断 |
| 六角形 | id{{六角形}} | |
| 平行四边形 | id[/平行四边形/] | |
| 平行四边形 | id[\平行四边形\] | |
| 梯形 | id[/梯形\] | |
| 梯形 | id[\梯形/] |
方形节点
flowchart TB
A[默认节点]
A[默认节点]
圆角节点
flowchart TB
A(圆角节点)
A(圆角节点)
圆形节点
flowchart LR
A((圆形))
A((圆形))
体育场节点
flowchart TB
A([体育场节点])
A([体育场节点])
圆柱节点
flowchart LR
A[(圆柱形)]
A[(圆柱形)]
子程序形状节点
flowchart LR
A[[子程序形状]]
A[[子程序形状]]
不对称形状节点
flowchart LR
A>不对称形状]
A>不对称形状]
菱形节点
flowchart LR
A{菱形}
A{菱形}
六角形
flowchart LR
A{{六角形}}
A{{六角形}}
平行四边行节点
flowchart BT
A[\平行四边形\]
B[/平行四边形/]
A[\平行四边形\]
B[/平行四边形/]
梯形节点
flowchart LR
A[/梯形\] B[\梯形/]
A[/梯形\] === B[\梯形/]
子程序形状节点
flowchart LR
A[[子程序形状]]
A[[子程序形状]]
定义流程图的方向
| 方向 | 描述 |
|---|---|
| TB或者TD | 从上到下。默认 |
| BT | 从下到上 |
| LR | 从左到右 |
| RL | 从右到左 |
声明流程图从上到下(TD 或 TB)。
flowchart
A-->B
A-->B
声明了流程图是从左到右(LR)的方向。
flowchart LR
A-->B
A-->B
节点连接
分类
节点可以与连接/边连接。 可以有不同类型的连接,也可以将文本字符串附加到连接。
分类如下:
l[连接]-->x[线形]-->P[单线] & C[粗线] & X[虚线]
P-->PD["--"]
C-->CD["=="]
X-->XD["-.-"]
l-->箭头--> jy[有箭头] & jw[无箭头]
jy-->jyD[" "]
jw-->jwD[">"]
l-->注释-->zy(有注释) & zw(无注释)
线性和箭头的分类
根据线形、箭头(还有其他形状,但先默认为箭头,其他形状下面阐述)和注释(描述)的分类,可以有12种形式的连接形式:
| 表述 | 说明 | 使用示例 |
|---|---|---|
| --- | 单线无箭头 | A(出去游玩)---B[回家] |
| --> | 单线加箭头 | A(出去游玩)-->B[回家] |
| --text-- | 单线加描述 | A(出去游玩)--玩够了--B[回家] |
| --text--> | 单线箭头加描述 | A(出去游玩)--玩够了-->B[回家] |
| === | 粗线 | A(出去游玩)===B[回家] |
| ==> | 粗线加箭头 | A(出去游玩)==>B[回家] |
| == text== | 粗线加描述 | A(出去游玩)== 玩够了==B[回家] |
| == text==> | 粗线箭头加描述 | A(出去游玩)== 玩够了==>B[回家] |
| -.- | 虚线 | A(出去游玩) -.-[回家] |
| -.-> | 虚线加箭头 | A(出去游玩)-.->B[回家] |
| -.text.- | 虚线加描述 | A(出去游玩)-.玩够了.-B[回家] |
| -.text.-> | 虚线箭头加描述 | A(出去游玩)-.玩够了.->B[回家] |
连接详细例
单线带箭头的连接
flowchart LR
A-->B
c<-->|双向箭头|c1
A1--->B1
A-->B
c<-->|双向箭头|c1
A1--->B1
最少2条线。超过2条连接就会越长。其他连接同样的道理。
粗线带箭头连接
flowchart LR
A==>B
A==>B
虚线带箭头连接
flowchart LR
A-.->B
A-.->B
普通没有箭头的连接
flowchart LR
A---B
A---B
粗线没有箭头连接
flowchart LR
A===B
A===B
虚线无箭头连接
flowchart LR
A-.-B
A-.-B
有文字的连接
flowchart LR
A1-->|hello world|B1
A11--"hello world<br>另种方式"-->B11
ca11==>|hello world|ca21
ca1=="hello world<br>另种方式"==>ca2
xa-.->|I like the world|xa1
xa11-."I like the world<br>另种方式".->xa111
A1-->|hello world|B1
A11--"hello world<br>另种方式"-->B11
ca11==>|hello world|ca21
ca1=="hello world<br>另种方式"==>ca2
xa-.->|I like the world|xa1
xa11-."I like the world<br>另种方式".->xa111
flowchart LR
a1---|"hello world, <br>我喜欢"|b1
c1===|hello world|c2
x1-.-|I like the world|x2
a1---|"hello world, <br>我喜欢"|b1
c1===|hello world|c2
x1-.-|I like the world|x2
备注,连接的上文字不能是标点符号。所以连接上的文字要精炼。但如果确实需要特殊字符则可以放到英文双引号
" "中。
其他箭头形状
flowchart LR
A --o B --x C
A --o B --x C
flowchart LR
A o--o B x--x C
A o--o B x--x C
连接长度
流程图中的每个节点最终都会根据其连接到的节点分配到渲染图中的等级,即垂直或水平级别(取决于流程图方向)。 默认情况下,连接可以跨越任意数量的等级,但可以通过在连接定义中添加额外的破折号来要求任何连接比其他连接更长。
flowchart TB
A[开始]-->A1{想去旅游吗}
A1-->|想|B{有新冠疫情吗}
B-->|No|可以去
B-->|Yes|不能去
A1----->|不想|结束
A[开始]-->A1{想去旅游吗}
A1-->|想|B{有新冠疫情吗}
B-->|No|可以去 -->E
B-->|Yes|不能去 -->E
A1----->|不想|E[结束]
特殊字符
特殊字符比如,()[]*等等无法被渲染,可以将文本放在英文双引号""内。 如下例所示:
flowchart LR
A["我是特殊字符,比如:<br>[]{}*`:=->"]
A["我是特殊字符,比如:<br>[]{}*`:=->"]
转义字符
flowchart LR
A["我是特殊字符,比如:#9829;、""]
A["我是特殊字符,比如:#9829;、""]
给出的数字是以 10 为基数,因此 # 可以编码为 #35;,#9829表示心形。 还支持使用 HTML 字符名称,比如双引号可以用"表示。
子图(subgraph)
flowchart LR
subgraph R[需求]
%%备注表示子图方向的命令不起作用: directive LR
需求调研 --> 需求分析 --> 需求说明书
end
subgraph C[编码和调试]
需求理解-->编码-->调试
end
subgraph D[上线]
数据库初始化--> 软件部署-->应用启动
end
R==>C==>D
subgraph R[需求]
%%备注表示子图方向的命令不起作用: directive LR
需求调研 --> 需求分析 --> 需求说明书
end
subgraph C[编码和调试]
需求理解-->编码-->调试
end
subgraph D[上线]
数据库初始化--> 软件部署-->应用启动
end
R==>C==>D
注解
如果需要注解则可以使用%%
flowchart RL
%%从左到右的普通流程图
A-->B
%%从左到右的普通流程图
A-->B
markdown mermaid流程图的更多相关文章
- Markdown Mermaid
Mermaid 是一个用于画流程图.状态图.时序图.甘特图的库,使用 JS 进行本地渲染,广泛集成于许多 Markdown 编辑器中. 之前用过 PlantUML,但是发现这个东西的实现原理是生成 U ...
- Hexo引入Mermaid流程图和MathJax数学公式
近来用Markdown写文章,越来越不喜欢插入图片了,一切能用语法解决的问题坚决不放图,原因有二: 如果把流程图和数学公式都以图片方式放到文章内,当部署到Github上后,访问博客时图片加载实在太慢, ...
- markdown的流程图实现和代码语法着色
用flowchart为markdown添加流程图 举个例子如下,根据这个例子大家就能看懂我到底是怎么实现的 <!DOCTYPE html> <html> <head> ...
- MarkDown和流程图诠释你的代码
写在前面:首先感谢导师-猴哥对我的认可(求多分享点编程经验.工具.多开课),学习编程是一个痛苦和快乐的过程,希望大家共勉 本文介绍MarkDown的基本语法.使用MarkDown画简单的流程图.使用X ...
- VS Code实现markdown画流程图
安装最新的vscode编辑器,原生支持markdown语法.不会markdow的人可以去好好学下,写文档神器!!! 1.安装Markdown Preview Enhanced插件 2.本地新建test ...
- markdown的流程图、时序图、甘特图画法
https://www.jianshu.com/p/a9ff5a9cdb25 Markdown里面的序列图 https://shd101wyy.github.io/markdown-preview-e ...
- markdown ——flow流程图
一个纯文本的语法怎么画图? 将流程图代码包含在```folw和`````之间即可 例子 st=>start: Start op=>operation: Your Operation sub ...
- markdown mermaid序列图
序列图(时序图) 序列图是一种交互图,它显示了进程如何相互操作以及按什么顺序操作. sequenceDiagram participant l as 大灰狼 participant y as 小羊 l ...
- markdown mermaid状态图
状态图 状态图是一种用于计算机科学和相关领域描述系统行为的图.状态图要求描述的系统由有限数量的状态组成. 语法: stateDiagram-v2 [*] --> Still Still --&g ...
随机推荐
- 为什么没有APS排产的MES是没有灵魂的?
ERP系统在于对整个企业与集团企业间的全面管控,APS系统是生产规划及排程系统,MES系统重点在于车间现场的管理,下面用最简单方式讲讲ERP系统.APS系统和MES系统之间的区别与联系. 没有APS计 ...
- 日历的种类(Project)
<Project2016 企业项目管理实践>张会斌 董方好 编著 日历有三种:标准日历.24小时日历和夜班日历. 设置的位置在[项目]>[属性]>[更改工作时间]>[ ...
- LuoguP7189 [COCI2007-2008#6] PARKING 题解
Content 有 3 辆卡车,第 \(i\) 辆卡车停车开始时间为 \(l_i\),结束时间为 \(r_i\)(不包含).现在有以下收费方式: 停车辆数 每分钟每辆车单价 \(1\) \(a\) \ ...
- IDEA中springboot项目添加yml格式配置文件
1.先创建application.properties 文件,在resources文件夹,右键 new -> Resource Bundle 如下图所示,填写名称 2.生成如下图所示文件 3. ...
- JAVA生成订单编号工具类
JAVA根据时间戳和随机数方式生成订单编号工具类 OrderUtils.java package com.util; import java.text.DateFormat; import java. ...
- 金智维RPA培训(一)产品基础架构-RPA学习天地
1.产品组成分为:Server,control,agent三个组件,支持CS和BS架构.独有的中继服务器可以解决跨网段的问题,这里应该还是采用了多网卡模式. 其中:Agent负责对流程的执行工作.Co ...
- 【LeetCode】508. Most Frequent Subtree Sum 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- 【LeetCode】640. Solve the Equation 解题报告(Python)
[LeetCode]640. Solve the Equation 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: ht ...
- BeanUtils属性转换工具
commons 包的 BeanUtils 进行属性拷贝性能较差:Spring 的 BeanUtils 性能相对较好. public class A { private String name; pri ...
- 【jvm】06-new一个对象到底占了多少内存?
[jvm]06-new一个对象到底占了多少内存? 欢迎关注b站账号/公众号[六边形战士夏宁],一个要把各项指标拉满的男人.该文章已在github目录收录. 屏幕前的大帅比和大漂亮如果有帮助到你的话请顺 ...