Markdown时序图--基础语法
时序图
序列图是一种交互图,它显示了流程以何种顺序相互操作。
Mermaid可以渲染序列图,如下定义。
sequenceDiagram
Alice->>John:Message Hello John, how are you?
John-->>Alice:Message Great!
Alice-xJohn:Message See you later!
Alice ->> John: Hello John, how are you?
John -->> Alice: Great!
Alice-x John: See you later!
1.1 :定义序列图的参与者
参与者可以隐式定义,如上图例子----即参与者在图表源文本中按照出现的顺序呈现。但有时,您可能希望以不同于在第一条消息中显示的顺序显示参与者。可以通过以下步骤指定行动者的出现顺序:
sequenceDiagram
participant John
participant Alice
Alice->>John: Hello John, how are you?
John-->>Alice: Great!
participant John
participant Alice
Alice->>John: Hello John, how are you?
John-->>Alice: Great!
1.2:为参与者设置别名
参与者可以有一个便于识别的ID和一个描述性的标签
sequenceDiagram
participant A as Alice
participant J as John
A->>J: Hello John, how are you?
J->>A: Great!
participant A as Alice
participant J as John
A->>J: Hello John, how are you?
J->>A: Great!
一:语法----时序图
[][][][] [参与者A] [线(箭头)] [参与者B] :Message(关键字可忽略) 文本描述
语法可解读:即 参与者A与参与者B通过线连接 :连接的线上可以描述A与B的关系
现在有6种类型的线(箭头)
| Type | Description |
|---|---|
| -> | Solid line without arrow |
| --> | Dotted line without arrow |
| ->> | Solid line with arrowhead |
| -->> | Dotted line with arrowhead |
| -x | Solid line with a cross at the end |
| --x | Dotted line with a cross at the end. |
1.2:我们可以定义参与的的主动(activate)和被动(activate)的关系。
sequenceDiagram
Alice->>John: Hello John, how are you?
activate John
John-->>Alice: Great!
deactivate John
Alice->>John: Hello John, how are you?
activate John
John-->>Alice: Great!
deactivate John
即通过“activate John”关键字activate 定义对象“John”为主动发起开始,“deactivate John”关键字deactivate定义John结束。如上。
备注:简写activate和deactivate通过在":"后追加+/-
sequenceDiagram
Alice->>+John: Hello John, how are you?
John-->>-Alice: Great!
1.2.1 : activate可以连续标示同一个参与者
sequenceDiagram
Alice->>+John: Hello John, how are you?
Alice->>+John: John, can you hear me?
John-->>-Alice: Hi Alice, I can hear you!
John-->>-Alice: I feel great!
Alice->>+John: Hello John, how are you?
Alice->>+John: John, can you hear me?
John-->>-Alice: Hi Alice, I can hear you!
John-->>-Alice: I feel great!
二:设置笔记
我们可以为一个时序图设置笔记,语法如下
Note [ right of | left of | over ] [Actor]: 笔记内容
语法解读:关键字 Note [ 右边 | 左边 | 上面 ] [参与者]: 笔记内容
sequenceDiagram
participant John
Note right of John: Text in note
participant John
Note right of John: Text in note
备注:也可以在横跨两个对象
sequenceDiagram
Alice->John: Hello John, how are you?
Note over Alice,John: A typical interaction
Alice->John: Hello John, how are you?
Note over Alice,John: A typical interaction
三:循环
我们可以在时序图中表达一个循环,语法如下。
loop Loop text
... statements ...
end
举例:
sequenceDiagram
Alice->John: Hello John, how are you?
loop Every minute
John-->Alice: Great!
end
Alice->John: Hello John, how are you?
loop Every minute
John-->Alice: Great!
end
四:Alt选择
我们还可以在时序图中表达选择,即二选一的表示,语法如下
alt Describing text
... statements ...
else
... statements ...
end
OR
opt Describing text
... statements ...
end
举例如下
sequenceDiagram
Alice->>Bob: Hello Bob, how are you?
alt is sick
Bob->>Alice: Not so good :(
else is well
Bob->>Alice: Feeling fresh like a daisy
end
opt Extra response
Bob->>Alice: Thanks for asking
end
Alice->>Bob: Hello Bob, how are you?
alt is sick
Bob->>Alice: Not so good :(
else is well
Bob->>Alice: Feeling fresh like a daisy
end
opt Extra response
Bob->>Alice: Thanks for asking
end
五:并行
在时序图中表达并行,语法如下
par [Action 1]
... statements ...
and [Action 2]
... statements ...
and [Action N]
... statements ...
end
举例1:简单并行
sequenceDiagram
par Alice to Bob
Alice->>Bob: Hello Bob, I am Alice.
and Alice to John
Alice->>John: Hello Bob, I am Alice.
end
Bob->>Alice: Hello Alice.
John->>Alice: Hello Alice.
par Alice to Bob
Alice->>Bob: Hello Bob, I am Alice.
and Alice to John
Alice->>John: Hello Bob, I am Alice.
end
Bob->>Alice: Hello Alice.
John->>Alice: Hello Alice.
举例2: 嵌套并行,即par内嵌套子par语句
六:设置背景
我们可以为时序图的部分语句进行涂色,语法如下
rect rgb(0, 255, 0)
... content ...
end
例如
par Alice to Bob
rect rgb(0, 255, 0)
Alice->>Bob: Hello Bob, I am Alice.
end
and Alice to John
Alice->>John: Hello Bob, I am Alice.
end
rect rgb(255, 0, 0)
Bob->>Alice: Hello Alice.
John->>Alice: Hello Alice.
end
七:设置备注
即为程序可读性提高,可以为时序图设置备注,语法如下
sequenceDiagram
Alice->>John: Hello John, how are you?
%% this is a comment
John-->>Alice: Great!
Alice->>John: Hello John, how are you?
%% this is a comment
John-->>Alice: Great!
Markdown时序图--基础语法的更多相关文章
- 【VScode】使用VScode 来写markdown时序图
准备工作 在VScode中下载插件Markdown Preview Enhanced插件 创建一个.md文件 在VScode中打开文件,界面内点击右键可以看到Open preview to the s ...
- Markdown 简介及基础语法
一.Markdown 简介 Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. 二.Markdown 基础语法 1. Markdown ...
- MarkDown时序图
时序图 语法 ```sequence ``` 标题 title: 我是标题 对象 participant A participant B as b-alias 交互 sequence A->B: ...
- Markdown 11 种基础语法
现在是我在学习Markdown时做的笔记.学完这些Markdown的基本使用已经不成问题. 1. 标题设置(让字体变大,和word的标题意思一样)在Markdown当中设置标题,有两种方式: 第一种: ...
- markdown八条基础语法
1.空行 答:使用全角打出空格,之后再换行就可以打出空行了 2.标题 答:#表示标题,#表示一级标题,字号最大,一共有六级标题 3.列表 答:- 无序列表,1. 有序列表,注意和文本之间有空格 4.链 ...
- 10分钟学会使用Markdown绘制UML时序图
1.1 什么是Markdown? Markdown是一种语法特别少.特别简单的标记语言,用来编写文档.用Markdown编写的文档是纯文本格式,经过编辑器的渲染,就会形成排 版优美的文档,本文就是用M ...
- MarkDown基础语法大全
一.MarkDown是什么? Markdown是一种轻量级的「标记语言」,创始人为约翰·格鲁伯,用简洁的语法代替排版,目前被越来越多的知识工作者.写作爱好者.程序员或研究员广泛使用.其常用的标记符号不 ...
- .md(markdown)基础语法
markdown基础语法笔记,方便翻看. 1. 标题 标题有3中写法,可混写: (1)# ***,前面#,后面文字,注意,#与文字间有空格,1-6个#分别表示h1-h6,h1.h2下有横线 (2)== ...
- Java单体应用 - Markdown - 02.基础语法
原文地址:http://www.work100.net/training/monolithic-markdown-basic.html 更多教程:光束云 - 免费课程 基础语法 序号 文内章节 视频 ...
随机推荐
- 10 个超棒的 JavaScript 简写技巧
今天我要分享的是10个超棒的JavaScript简写方法,可以加快开发速度,让你的开发工作事半功倍哦. 开始吧! 1. 合并数组 普通写法: 我们通常使用Array中的concat()方法合并两个数组 ...
- Subversion Backup and Restore
Backup Specified Revision Backup specified revision (here is 20): $ cd /opt/svnRepo $ svnadmin dump ...
- Mybatis源码解析2—— 实例搭建
大家好,我是可乐. 上篇文章给大家撸了一遍用 JDBC 直接操作数据库的实例,还只是简单写了一个查询的接口,其代码量就已经很大了,并且可乐还给大家分析了直接使用 JDBC 带来的一些问题,总之是一种反 ...
- 刚学spark
https://blog.csdn.net/u013019431/article/details/80776662 在jupyter notebook import pysparkhttps:// ...
- MySQL-20-MySQL优化
MySQL优化哲学 1 为什么优化? 为了获得成就感? 为了证实比系统设计者更懂数据库? 为了从优化成果来证实优化者更有价值? 但通常事实证实的结果往往会和你期待相反!优化有风险,涉足需谨慎! 2 优 ...
- JavaSE-方法
何谓方法 比如之前用到的 System.out.println(); System为一个类:out为这个类的一个输出对象:println()为这个对象的方法 调用System类中out输出对象的pri ...
- zzcms2020代码审计笔记
在CNVD中看到zzcms后台sql注入漏洞: 漏洞细节未被公开,影响版本zzcms2020,本地搭建一套相同版本找一下漏洞触发点. 打开目录,后台ba***.php文件共有三个: 先看下bad.ph ...
- Vue一些需要记住的指令/属性
v-once:只能使得组件解析执行一次的指令,如: <div id="app"> <p>{{count}}</p> <!--count在v ...
- SQL 练习4
查询不存在" 01 "课程但存在" 02 "课程的情况 SELECT * from sc WHERE cid = '02' AND sid not in (SE ...
- noip37
为何我对T3情有独钟 T1 不难发现,题目要求的就是 \(ax+by=c\) ,已知 \(a,b,c\) ,求 \(\min\{|a|+|b|\}\) ,那就用扩欧求一组特解,再分情况讨论即可. Co ...