Markdown之流程圖

Markdown之流程圖

### 流程圖

一段流程圖語法以 “``` 開頭,以 “``` 結尾

graph XX(XX表示流程圖類型),分橫向和豎向兩大類

```
graph LR
節點1(節點1名稱)-->節點2(節2點名稱)
節點1(節點1哈哈)
```
Markdown之流程圖

如上其中:

> graph表示這是一個流程圖

> LR表示流程圖類型

> 節點1和節點2表示流程圖中的節點Id,每個節點Id唯一的且對應各自的對外顯示的名稱,如果不顯式指定節點名稱默認顯示節點Id。同一節點Id的多個定義為最後一行定義的生效

```
graph LR
節點1(節點1名稱1)-->節點2(節2點名稱)
節點1(節點1名稱2)
節點1{節點1名稱3}
```
Markdown之流程圖

> -->表示節點的流程線

#### 流程圖類型

> 豎向分位上(graph TB)和下(graph BT)

```
graph TB
節點1-->節點2
```
```
graph BT
節點1-->節點2
```
Markdown之流程圖

> 橫向分位左(graph RL)和右(graph LR)

```
graph LR
節點1-->節點2
```
```
graph RL
節點1-->節點2
```

TB - top bottom(自上而下)

BT - bottom top(自下而上)

RL - right left(從右到左)

LR - left right(從左到右)

TD - 與TB相同(自上而下)

```
graph TD
節點1-->節點2
```
Markdown之流程圖

#### 流程圖框線

> []:直角四邊形,處理框

```
graph LR
節點1[處理1]-->節點2[處理2]
```
Markdown之流程圖

> ():圓角四邊形,起止框

```
graph LR
節點1(開始)-->節點2(結束)

```
Markdown之流程圖

> (()):圓形,連接點

```
graph LR
節點1((連接1))-->節點2((連接2))
```
Markdown之流程圖

> {}:稜形,判斷框

```
graph LR
節點1{判斷1}-->節點2{判斷2}
```
Markdown之流程圖

> >]:折角

```
graph LR
節點1>描述1]-->節點2>描述2]
```
Markdown之流程圖

#### 流程線

> ---:無流向實線和-.-:虛線

```
graph LR
節點1---節點2
節點1-.-節點2
```
Markdown之流程圖

> ==>:無流向粗線

```
graph LR
節點1===節點2
節點1===|流程|節點2
節點1==流程===節點2
```
Markdown之流程圖

> ---||或 -- ---:無流向實線添加文本

> -.->||或 -. -.->:無流向虛線添加文本

``` 

graph LR
節點1---|流程1|節點2
節點1--流程2---節點2
節點1-.-|流程3|節點2
節點1-.流程4-.-節點2
```
Markdown之流程圖

> -->:流向實線和-.->:流向虛線

```
graph LR
節點1-->節點2
節點1-.->節點2
```
Markdown之流程圖

> ===:流向粗線

```
graph LR
節點1==>節點2
節點1==流程==>節點2
節點1==>|流程|節點2
```
Markdown之流程圖

> -->||或 -- --?:流向實線添加文本

> -.->||或 -. -.->:流向虛線添加文本

```
graph LR
節點1-->|流程1|節點2
節點1--流程2-->節點2
節點1-.->|流程3|節點2
節點1-.流程4-.->節點2
```
Markdown之流程圖

> 如果文本中包含特殊字符,需要使用雙引號

```
graph LR
節點1["節點1 名稱"]-->節點2["節點2 名稱"]
節點1["節點1 名稱"]-->節點3["這是 (節點3)#9829;"]
```
Markdown之流程圖

#### 子圖

```
graph LR
子圖1節點1[A1]-->子圖2節點2[子圖2節點2]
子圖3節點1[A1]-->子圖1節點2[子圖2節點2]
subgraph 子圖1
子圖1節點1[子圖1節點1]-->子圖1節點2[子圖1節點2]

end
subgraph 子圖2
子圖2節點1[子圖2節點1]-->子圖2節點2[子圖2節點2]
end
subgraph 子圖3
子圖3節點1[子圖3節點1]-->子圖3節點2[子圖3節點2]
end
```
Markdown之流程圖

### 交互功能

增加事件

> click nodeId callback

``` 

graph LR
節點1-->節點2
click 節點1 callback "提示框"
click 節點2 "http://www.github.com" "github地址"
```
Markdown之流程圖

增加樣式

```
graph LR
節點1(開始)-->節點2(結束)
style 節點1 fill:#f9f,stroke:#333,stroke-width:4px
style 節點2 fill:#ccf,stroke:#f66,stroke-width:2px,stroke-dasharray: 5, 5
```
Markdown之流程圖

雲筆記中更詳細的流程圖語法,是參考(有些特性並沒有支持):https://mermaidjs.github.io/flowchart.html。


分享到:


相關文章: