Markdown 进阶语法:Mermaid 绘图 (二) - 顺序图 (Sequence Diagram)
Mermaid 简介
Mermaid 简介
Mermaid 是一个基于 JavaScript 的图表绘制工具,它使用类似 Markdown 的简单语法来编写,并动态地将它们渲染成图表。
Mermaid 支持的图表类型包括:
- 流程图 (Flowchart) : 用关键词
graph
或flowchart
表示 - 顺序图 (Sequence Diagram) : 用关键词
sequenceDiagram
表示 - 类图 (Class Diagram) : 用关键词
classDiagram
表示 - 状态图 (State Diagram) : 用关键词
stateDiagram
表示 - 实体关系图 (Entity Relationship Diagram) : 用关键词
erDiagram
表示 - 用户旅程图 (User Journey Diagram) : 用关键词
journey
表示 - 甘特图 (Gantt Diagram) : 用关键词
gantt
表示 - 饼图 (Pie Chart Diagram) : 用关键词 pie 表示
- 象限图 (Quadrant Chart) : 用关键词
quadrantChart
表示 - 需求图 (Requirement Diagram) : 用关键词
requirementDiagram
表示 - Gitgraph 图 (Gitgraph Diagram) : 用关键词
gitGraph
表示 - 思维导图 (Mindmap) : 用关键词
mindmap
表示 - 时间线图 (Timeline Diagram) : 用关键词
timeline
表示
丰富的图表类型,可以满足大部分的绘图需求,越来越多的人开始使用 Mermaid 来绘制图表。
如何使用 Mermaid
想要使用 Mermaid 绘制各类图表,可以通过以下方式:
- 使用专门支持 Mermaid 渲染的在线编辑器,如:Mermaid Live Editor
- 使用支持 Mermaid 语法的 Markdown 编辑器,如:Typora
通常在专门的 Mermaid 编辑器我们只需要编写 Mermaid 语法,就可以看到图表的渲染效果:
但是在支持 Mermaid 的 Markdown 编辑器中,我们需要在 Mermaid 语法前后添加特定的标记,才能看到图表的渲染效果,如:
Mermaid 语法
顺序图 (Sequence Diagram)
顺序图是一种交互图,它显示了流程如何相互操作以及以何种顺序操作。
Mermaid 可以渲染顺序图。
代码:
Participants
参与者可以隐式地定义,如本文第一个示例所示。参与者在图源文本中按顺序呈现。有时,你可能希望以不同于上述示例中的顺序显示参与者,可以通过执行以下操作来指定它们的顺序:
Actors
如果你想使用 actor 图标来代替矩形框,可以使用 actor 关键字来代替 participant 关键字。
别名
每个参与者可以有一个标识符和一个别名。
分组
参与者可以分组。你可以通过以下方式定义一个颜色(默认为透明):
如果你的组名为颜色标识符,你也可以使用 transparent 关键字来定义一个透明的组:
代码:
消息
消息可以显示为实线或虚线两种形式。
Mermaid 支持以下箭头:
类型 | 描述 |
---|---|
-> |
无箭头实线 |
--> |
无箭头虚线 |
>> |
带箭头实线 |
-->> |
带箭头虚线 |
-x |
带 x 的实线 |
--x |
带 x 的虚线 |
-) |
带 ) 的实线 (async) |
--) |
带 ) 的虚线 (async) |
你可以使用 activate 和 deactivate 关键字来激活或停用参与者。
还有一种直接在消息后面添加 + 或 - 来激活或停用参与者的方法。
激活是可以堆叠的,如下所示:
说明
可以使用 Note 关键字添加说明。
Note [ right of | left of | over ] [Actor]: Text in note content
代码:
也可以添加跨越多个参与者的说明:
也可以添加换行符:
循环
可以在顺序图中使用 loop 关键字来定义循环。
代码:
选择
可以在顺序图中使用 alt 关键字来定义选择。
或者存在可选的序列:
代码:
并行
可以在顺序图中使用 par 关键字来定义并行。
代码:
并行块也可以嵌套:
临界区
可以通过条件处理显示必须自动发生的操作。
代码:
只有一个选择时,也可以使用临界区:
临界区也可以嵌套,详情参考 par。
Break
可以在流中指示序列的停止(通常用于对异常建模)。
代码:
背景高亮
可以改变背景颜色来突出显示一些内容。
代码:
注释
可以在序列图中输入注释,解析器将忽略这些注释。使用 %% 标志注释的开始。
转义字符的实体代码
可以使用 HTML 实体代码来转义字符。
顺序标号
在顺序图中,可以为每个箭头附加一个顺序标号。它可以在配置项中配置:
也可以在图表语法中使用 autonumber 关键字打开:
参与者菜单
参与者可以有包含到外部页面的个性化链接的弹出式菜单。例如,如果参与者表示 web 服务,则有用的链接可能包括指向服务运行状况指示板的链接、包含服务代码的 repo 或描述服务的 wiki 页面。
语法格式如:
代码:
参与者菜单1
你也可以使用 json 来定义参与者菜单:
语法格式如:
代码:
样式
顺序图的样式设置是通过定义一些 css 类来完成的。在渲染过程中,这些类从位于 src/themes/sequence.scss
的文件中提取出来。
用到的类
类 | 描述 |
---|---|
actor | 图顶部的参与者框的样式 |
text.actor | 图表顶部参与者框中文本的样式 |
actor-line | 参与者之间的水平线的样式 |
messageLine0 | 实线消息线的样式 |
messageLine1 | 虚线消息线的样式 |
messageText | 消息线上文本的样式 |
labelBox | 循环中标签的样式 |
labelText | 循环中标签文本的样式 |
loopText | 循环框中文本的样式 |
loopLine | 循环框中线的样式 |
note | 说明框的样式 |
noteText | 说明中文本的样式 |
样例:
配置
可以使用 json 格式的配置对象 mermaid.sequenceConfig、mermaid.sequenceConfig 来配置顺序图。
可能的配置参数
参数 | 描述 | 默认值 |
---|---|---|
mirrorActors | 打开/关闭参与者在图表下方和上方的渲染 | false |
bottomMarginAdj | 调整图形结束的位置。css 的宽边框样式可能会产生不必要的剪切 | 1 |
actorFontSize | 设置参与者描述的字体大小 | 14 |
actorFontFamily | 设置参与者描述的字体类 | “Open Sans”, sans-serif |
actorFontWeight | 设置参与者描述的字体粗细(默认值可能有误) | “Open Sans”, sans-serif |
noteFontSize | 设置参与者附加说明的字体大小 | 14 |
noteFontFamily | 设置参与者附加注释的字体类 | “trebuchet ms”, verdana, arial |
noteFontWeight | 设置参与者附加说明的字体粗细(默认值可能有误) | “trebuchet ms”, verdana, arial |
noteAlign | 设置参与者附加说明中的文本对齐方式 | center |
messageFontSize | 设置参与者之间消息的字体大小 | 16 |
messageFontFamily | 设置参与者之间消息的字体类 | “trebuchet ms”, verdana, arial |
messageFontWeight | 设置参与者之间消息的字体粗细(默认值可能有误) | “trebuchet ms”, verdana, arial |
原文链接:https://blog.csdn.net/qq_63585949/article/details/131580210
最后编辑:Jeebiz 更新时间:2024-05-07 20:29