mermaid

 使用Mermaid在博客中添加流程图

什么是Mermaid?

Mermaid 是一个基于 Javascript 的图表绘制工具,通过解析类 Markdown 的文本语法来实现图表的创建和动态修改。Mermaid 诞生的主要目的是让文档的更新能够及时跟上开发进度。

流程图

在mermaid中可以使用graphflowchart来绘制流程图,但使用flowchart绘制流程图时候性能更高,详情Flowcharts Syntax | Mermaid:

所有的流程图都由节点、几何形状和边、箭头或线组成。mermaid定义了这些节点和边的生成和交互方式。

它还可以容纳不同的箭头类型、多方向箭头以及与子图

一个基本的结点如下

code:

graph LR
 id
id

(id表示在结点box中显示的内容)

也可以设置与id不同的文本,格式为id[text],此时结点的内容为text的内容而不是id

graph LR
	id1[text]
text

1. 流程图的方向

mermaid可以通过方向参数规定流程图的方向,给出五个参数来声明流程图的方向

声明说明
TB从上到下
TD自上而下
BT从下到上
RL从右到左
LR从左到右

eg:

graph TB
 Start-->Stop
Start
Stop
graph TD
 Start-->Stop
Start
Stop
graph BT
 Start-->Stop
Start
Stop
graph RL
 Start-->Stop
Start
Stop
graph LR
 Start-->Stop
Start
Stop

2. 结点的形状

结点的定义为id[text],在mermaid中,结点的形状也是可以修改的,提供以下格式

形式说明
id[text]矩形结点
id(text)圆角矩形结点
id([text])椭圆结点
id[[text]]子程序结点
id[(text)]数据库结点
id((text))圆形结点
id>text]不对称结点
id{text}菱形结点
id{{text}}六边形结点
id[/text/]平行四边形结点
id[\text\]平行四边形结点(反方向)
id[\text/]梯形结点
id[/text\]梯形结点(反方向)
id(((text)))双圆结点(8.14版本不支持该形状)

eg:

graph TD
	id1[一般结点]
	id2(圆角矩形结点)
	id3([椭圆节点])
	id4[[子程序结点]]
	id5[(数据库结点)]
	
一般结点
圆角矩形结点
椭圆节点
子程序结点
数据库结点
graph TD
	id6((圆形结点))
	id7>不对称结点]
	id8{菱形结点}
	id9{{六边形结点}}
	id10[/平行四边形结点/]
圆形结点
不对称结点
菱形结点
六边形结点
平行四边形结点
graph TD
	id11[\平行四边形结点\]
	id12[\梯形结点/]
	id13[/梯形结点\]
平行四边形结点
梯形结点
梯形结点

3. 结点之间的链接

节点可以用链路/边连接。在mermaid中,可以使用不同类型的线链接结点,也可以在线上附加文字说明。

线的类型

声明说明
–>实线箭头
实线
– text — or -->|text|附带文本的线
-.-虚线
-.->虚线箭头
-. text .->附带文本的虚线箭头
==>粗实线箭头
== text ==>附带文本的粗实线箭头
~ ~ ~隐藏线

eg:

实线箭头:

graph LR
	A --> B
A
B

实线:

graph LR
	A --- B
A
B

附带文本的线:

graph LR
	A-->|说明|B
	C--说明-->D
说明
说明
A
B
C
D

虚线和带文本虚线:

graph LR
	A -.- B
	C-.-|说明|D
说明
A
B
C
D

虚线箭头和带文本的虚线箭头:

graph LR
	A -.-> B
	C -.->|说明|D
说明
A
B
C
D

粗实线箭头和带文本的粗实线箭头:

graph LR
	A ==> B
	C ==>|说明|D
说明
A
B
C
D

多个结点的连接

多个结点的连接如果是单向的,则直接将连接符放在节点后即可,如

graph LR
	A --> B --> C
	D -->|说明1| E -->|说明2| F
说明1
说明2
A
B
C
D
E
F

当需要连接的节点为多个时,可以使用&符号将结点连接,使用&符时,需要在符号和元素之间添加空格

graph LR
	A-->B & C
	D-->D & E-->F
A
B
C
D
E
F
G

其中,A-->B & C等价于A-->B A-->C

graph TB
	A & B --> C & D
	//等价于
	//A --> C
	//A --> D
	//B --> C
	//B --> D
A
B
C
D

新的线的类型

提供了新的线类型如下,新的线类型只有表的声明为flowchart时正常显示

形式说明
–o右端圆点线
–x右端x线
o–o双向圆点线
x–x双向x线
<–>双箭头
flowchart LR
    A --o B
    C --x D
		E o--o F
		G x--x H
		I <--> J
A
B
C
D
E
F
G
H
I
J

线的长度

一般情况下,线的长度是根据流程图排列方向自动调整的,在mermaid中可以通过增加-号来使线更长

graph TD
    A[Start] --> B{Is it?}
    B -->|Yes| C[OK]
    C --> D[Rethink]
    D --> B
    B ---->|No| E[End]
Yes
No
Start
Is it?
OK
Rethink
End
长度123
默认线------------
默认箭头-->--->---->
粗实线============
带箭头粗实线==>===>====>
虚线-.--..--...-
带箭头虚线-.->-..->-...->

4. 特殊符号

​ 如果想在结点中显示更复杂的内容,可以使用双引号把字符串包裹起来

graph LR
    id1["This is the (text) in the box"]
This is the (text) in the box

如果想在结点中显示特殊字符,可以使用#字符对符号进行转义输出

graph LR
        A["额外的引号:#quot;"] --> B["一个爱心:#9829;"]
额外的引号:"
一个爱心:♥

5. 子图

在mermaid中,可以使用subgraph关键字为流程图添加子图,子图从subgraph开始,从end结束

子图的定义

使用flowchart时会流程图会自动调整子图的大小

graph TD 
    c1-->a2
    subgraph one
    a1-->a2
    end
    subgraph two
    b1-->b2
    end
    subgraph three
    c1-->c2
    end
three
two
one
c2
c1
b2
b1
a2
a1
flowchart TD 
    c1-->a2
    subgraph one
    a1-->a2
    end
    subgraph two
    b1-->b2
    end
    subgraph three
    c1-->c2
    end
three
one
c2
c1
two
b2
b1
a2
a1

子图的ID和连接

子图和结点一样,也可以添加id

graph TB
    c1-->a2
    subgraph ide1 [one]
    a1-->a2
    end
one
a2
a1
c1

同样的,图和图之间也可以连接

图的连接只有使用 flowchart 关键字时才可用

flowchart TB
    c1-->a2
    subgraph one
    a1-->a2
    end
    subgraph two
    b1-->b2
    end
    subgraph three
    c1-->c2
    end
    one --> two
    three --> two
    two --> c2
three
one
c2
c1
two
b2
b1
a2
a1

子图的方向

子图的方向也是可以控制的,使用direction语句来控制子图的方向

flowchart LR
  subgraph TOP
    direction TB
    subgraph B1
        direction RL
        i1 -->f1
    end
    subgraph B2
        direction BT
        i2 -->f2
    end
  end
  A --> TOP --> B
  B1 --> B2
TOP
B1
f1
i1
B2
f2
i2
A
B

6. 样式和类样式

在mermaid中可以为结点添加样式

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

也可以和HTML一样为结点添加类,并定义类样式

flowchart LR
    A:::someclass --> B
    classDef someclass fill:#f96
A
B

7.对fontawesome的基本支持

mermaid增加了一些fontawesome的图标,可以使用fa声明使用,需要注意的是,在结点中使用特殊符号需要把文本用双引号包裹

flowchart TD
    B["fab:fa-twitter for peace"]
    B-->C[fa:fa-ban forbidden]
    B-->D(fa:fa-spinner)
    B-->E(A fa:fa-camera-retro perhaps?)
for peace
forbidden
A perhaps?
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Mermaid是一个用于创建流程图、甘特图和UML图表的工具。通过使用Mermaid,你可以轻松地创建各种类型的图表来丰富你的文章。 如果你想了解更多关于Mermaid的信息,你可以参考Mermaid官方网站或者在LaTeX数学表达式的文档中查找更多信息。 在使用Mermaid创建流程图时,你可以使用不同的形状,如长方形、圆形、圆角长方形和菱形来表示不同的元素。你可以使用链接将这些元素连接在一起,形成一个完整的流程图。如果你想了解更多关于Mermaid流程图语法的信息,你可以参考Mermaid官方网站上的文档。 此外,Mermaid还可以用于创建甘特图。甘特图可以帮助你规划和跟踪项目的进度。你可以使用不同的时间段和任务状态来表示项目的计划、进行中和已完成的任务。如果你想了解更多关于Mermaid甘特图语法的信息,你可以参考Mermaid官方网站上的文档。 最后,Mermaid还支持使用UML图表进行渲染。你可以使用UML图表来表示对象之间的关系和交互。例如,你可以使用序列图来展示不同角色之间的对话和行为。如果你想了解更多关于Mermaid UML图表语法的信息,你可以参考Mermaid官方网站上的文档。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [idea下载及安装教程](https://blog.csdn.net/weixin_43580828/article/details/90289586)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值