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 更多教程:光束云 - 免费课程 基础语法 序号 文内章节 视频 ...
随机推荐
- K8S系列第九篇(持久化存储,emptyDir、hostPath、PV/PVC)
更多k8s内容,请关注威信公众好:新猿技术生态圈 一.数据持久化 Pod是由容器组成的,而容器宕机或停止之后,数据就随之丢了,那么这也就意味着我们在做Kubernetes集群的时候就不得不考虑存储的问 ...
- BUUCTF-[HCTF 2018]admin(Unicode欺骗&伪造session)
目录 方法一:Unicode欺骗 方法二:伪造session 参考文章 记一道flask下session伪造的题. 方法一:Unicode欺骗 拿到题目f12提示you are not admin,显 ...
- 跟我一起写 Makefile(十二)
隐含规则 ---- 在我们使用Makefile时,有一些我们会经常使用,而且使用频率非常高的东西,比如,我们编译C/C++的源程序为中间目标文件(Unix下是[.o]文件,Windows下是[.obj ...
- Linux线程属性总结(一)
线程属性标识符:pthread_attr_t 包含在 pthread.h 头文件中. [c] view plaincopy //线程属性结构如下: typedef struct { int ...
- Java程序员的推荐阅读书籍
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...
- NOIP 模拟 $36\; \rm Cicada 拿衣服$
题解 \(by\;zj\varphi\) 发现右端点固定时,左端点的 \(min-max\) 单调递减,且对于 \(or\) 和 \(and\) 相减,最多有 \(\rm2logn\)个不同的值,且相 ...
- Tomcat配置SSL证书(PFX证书)
公司项目,应该是阿里云服务器 在windows2008 R2搭建的 Tomcat部署SSL证书,本文以PFX证书为例. 配置好之后开始 一.什么是SSL(证书)? SSL证书服务(Alibaba Cl ...
- rsync基本使用
概念 rsync是linux系统下的数据镜像备份工具.使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主机同步. 目前,已支持跨平台,可以在Windo ...
- EZpop分析
首先源代码如下 <?php class Modifier { protected $var; public function append($value){ include($value); } ...
- 重新整理数据结构与算法(c#)—— 图的深度遍历和广度遍历[十一]
参考网址:https://www.cnblogs.com/aoximin/p/13162635.html 前言 简介图: 在数据的逻辑结构D=(KR)中,如果K中结点对于关系R的前趋和后继的个数不加限 ...