segmentfault 上有一篇咨询 Markdown 条件判断的问题,我也顺便简单学习了一下 Markdown 的流程图语法。还好,SF 支持流程图,貌似采用的是 flowchart.js。
Flowchart.js 仅需几行代码即可在 Web 上完成流程图的构建。可以从文字表述中画出简单的 SVG 流程图,也可以画出彩色的图表。
Draws simple SVG flow chart diagrams from textual representation of the diagram http://flowchart.js.org/
先来看一段入门案例
流程图代码在 Markdown 编辑中应该是下面这样的
输出结果大致如下:
在markdown语法中,流程图的画法和代码段类似,也就是说,流程图是写在两个
之间的。
比如说php代码,会是这样一种格式:
那么流程图就是这样的:
语法
流程图的语法大体分为两部分:
前面部分用来定义流程图元素;
后面部分用来连接流程图元素,指定流程图的执行走向。
定义元素阶段的语法是
tag=>type: content:>url
上例中下面部分代码都是定义元素部分
st=>start: Start
e=>end: End
op1=>operation: My Operation
sub1=>subroutine: My Subroutine
cond=>condition: Yes or No?
io=>inputoutput: catch something...
说明:
tag 是流程图中的标签,在第二段连接元素时会用到。名称可以任意,一般为流程的英文缩写和数字的组合。
type 用来确定标签的类型,
=>
后面表示类型。由于标签的名称可以任意指定,所以要依赖type来确定标签的类型标签有6种类型:
start
end
operation
subroutine
condition
inputoutput
content 是流程图文本框中的描述内容,
:
后面表示内容,中英文均可。特别注意,冒号与文本之间一定要有个空格
url是一个连接,与框框中的文本相绑定,
:>
后面就是对应的 url 链接,点击文本时可以通过链接跳转到 url 指定页面
开始
st=>start: 开始
操作
op1=>operation: 操作、执行说明
条件
cond=>condition: 确认?
结束
e=>end: 结束
URL(貌似 SF 的编辑器不支持)
e=>点击本结束跳转:>http://https://segmentfault.com/blog/ingood
连接流程图元素
示例代码后面部分
st->op1->cond
cond(yes)->io->e
cond(no)->sub1(right)->op1
连接流程图元素阶段的语法就简单多了,直接用->来连接两个元素,几点说明如下:
说明:
使用
->
来连接两个元素对于
condition
类型,有yes
和no
两个分支,如示例中的cond(yes)
和cond(no)
每个元素可以制定分支走向,默认
向下
,也可以用right
指向右边,如示例中sub1(right)
。
更多关于流程图的语法说明,请移步 https://github.com/adrai/flow...
最后给出那个提问的答案示例
st=>start: 开始
e=>end: 结束:>http://https://segmentfault.com/blog/ingood
c1=>condition: A
c2=>condition: B
c3=>condition: C
io=>inputoutput: D
st->c1(no)->e
c2(no)->e
c3(no)->e
c1(yes,right)->c2(yes,right)->c3(yes,right)->io
io->e
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。