本文转载自:https://segmentfault.com/a/1190000006247465
Mark流程图语法
流程图的语法大体分为两部分:
- 流程图元素定义部分;
- 连接流程图元素部分,该部分用来指明流程图的执行走向。
定义元素的语法
tag=>type: content:>url
实例:
```flow
st=>start: 开始
e=>end: 结束
op=>operation: 操作
sub1=>subroutine: 子程序
cond=>condition: Yes or No?
io=>inputoutput: 输入/输出
st->op->cond
cond(yes)->io->e
cond(no)->sub1(right)->op
```
效果如下
说明:
tag
是流程图中的标签,在第二段连接元素时会用到。名称可以任意,一般为流程的英文缩写和数字的组合。type
用来确定标签的类型,=>
后面表示类型。由于标签的名称可以任意指定,所以要依赖type来确定标签的类型- 标签有6种类型:
start end operation condition inputoutput subroutine
content
是流程图文本框中的描述内容,:
后面表示内容,中英文均可。特别注意,冒号与文本之间一定要有个空格url
是一个连接,与框框中的文本相绑定,:>
后面就是对应的url
链接,点击文本时可以通过链接跳转到url
指定页面
1.开始
st=>start: 开始
2.结束
e=>end: 结束
3.操作
op1=>operation: 操作、执行说明
4.条件
cond=>condition: 确认?
5.输入输出
io=>inputoutput: catchsomething...
6.子程序
sub1=>subroutine: My Subroutine
URL
e=>点击本结束跳转:>https://blog.csdn.net/qq_21808961
连接流程图元素
示例代码后面部分
st->op1->cond
cond(yes)->io->e
cond(no)->sub1(right)->op1
连接流程图元素阶段的语法就简单多了,直接用->
来连接两个元素,几点说明如下:
说明:
- 使用 -> 来连接两个元素
- 对于
condition
类型,有yes
和no
两个分支,如示例中的cond(yes)
和cond(no)
- 每个元素可以制定分支走向,默认
向下
,也可以用right
指向右边,如示例中sub1(right)。
实例:
```flow
st=>start: 生产者线程进入 :>https://blog.csdn.net/qq_21808961
op1=>operation: 设置Info类的名称和内容
op2=>operation: 修改标志位
op3=>operation: 等待线程唤醒
op4=>operation: 等待消费者取走
cond=>condition: 判断标志位
st(right)->cond->op1->op2->op3
cond(yes,right)->op1
cond(no)->op4
```
显示效果:
上面的流程图使用了URL点击上面的的开始框(生产者线程进入),就会跳转到我的博客首页。
这里再强调一下:每一个元素都可以加上right
指明流程流程图的方向,如果不指定的话默认是向下的