前言
今天想着学一下用markdown来画流程图(我用的是joplin),结果就遇到了以下问题
问题
解析失败的例子
```mermaid
flowchat
//流程图元素定义
st=>start: start //开始
end=>end: end //结束
op=>operation: operation //操作
c=>condition: yes/no //条件判断
//流程图各元素的连接
st->op->c(yes)->end
c(no)->op->end
```
刚开始以为是我下的joplin可能出问题了,不信邪的又去网站上试了一下,也解析失败了。
搜了好一会后,也搞不懂咋回事,最终只能无奈放弃,要是有大佬知道的话,可以指教一下。
解决方法
最终,我尝试了另外的格式,终于成功了。
方向一共有4个,格式为从哪到哪,每一个方向由两个大写字母表示,大写字母是四个基本方向:
取首字母
上:Top
下:Bottom(或Down)
左:Left
右:Right
从上到下:TB (或 TD)
从下到上:BT
从左到右:LR
从右到左:RL
成功的例子
```mermaid
graph // 默认LR
A[A1] — B[B1] //两条线
A[A1] — B[B1]
A[A2] —> B[B2] //“-”越多,线越长
A[A2] --> B[B2]
A[A3] -.- B[B3]
A[A3] -.-> B5[B3]
A[A4] ==> B[B4]
A[A5] – 描述 — B[B5]
A[A6] – 描述 --> B[B6]
A[A7] -. 描述 .-> B[B7]
A[A9] == 描述 ==> B[B9]
```
```mermaid
graph TB //从上到下
A[A1] — B[B1]
A[A1] — B[B1]
A[A2] —> B[B2]
A[A2] --> B[B2]
A[A3] -.- B[B3]
A[A3] -.-> B[B3]
A[A4] ==> B[B4]
A[A5] – 描述 — B[B5]
A[A6] – 描述 --> B[B6]
A[A7] -. 描述 .-> B[B7]
A[A9] == 描述 ==> B[B9]
```
复杂一点的
```mermaid
graph LR
start[开始] --> input[输入A,B,C]
input --> conditionA{A是否大于B}
conditionA – YES --> conditionC{A是否大于C}
conditionA – NO --> conditionB{B是否大于C}
conditionC – YES --> printA[输出A]
conditionC – NO --> printC[输出C]
conditionB – YES --> printB[输出B]
conditionB – NO --> printC[输出C]
printA --> stop[结束]
printC --> stop
printB --> stop
```
补充(复习markdown语法的好地方)
今天才认真看了一下csdn的语法说明,发现还挺好用的,直接复制粘贴一下,就能清楚看到结果了。对我这种记忆力不太好的人还挺友好哈。