mermaid之流程图

mermaid中的流程图

1. 图形

图形布局分四个方向,上下、下上、左右、右左,分别是TB(TD)/BT(DT)/RL/LR,字母必须为大写,具体代码如下:

```mermaid

graph TD;

开始 --> 结束;

开始
结束

2. 节点和形状

  1. 带文字节点:为节点设置一个id,id后括号中写该节点内容

    graph TD;

    id1[这是一个节点]

    这是一个节点
  2. 圆边节点:()

    graph TD;

    id2(圆边节点)

    圆边节点
  3. 圆形节点:(())

    graph TD;

    id3((圆形节点))

    圆形节点
  4. 非对称形状节点

    graph TD;

    id4>非对称节点]

    非对称节点

    *:目前只有这种非对称形状,反过来无效

  5. 菱形节点

    graph TD;

    id5{菱形节点}

    菱形节点

3. 节点之间的连接

  1. 实线箭头连接

    graph LR;

    A --> B

    A
    B
  2. 开放连接(没有箭头)

    graph LR;

    A — B

    A
    B
  3. 连接上加文字

    graph LR;

    A – TEXT — B

    A —| TEXT | B

    TEXT
    A
    B

    *:第一种形式必须前边两个减号后边三个,第二种形式必须前边三个减号,即必须严格按照说明文档,否则无法解析,后面内容不再赘述

  4. 带箭头和文字的连接

    graph LR;

    A -->| TEXT | B

    A – TEXT --> B

    TEXT
    A
    B
  5. 虚线连接

    graph LR;

    A -.-> B

    A
    B
  6. 带文字的虚线连接

    graph LR;

    A -. TEXT .-> B

    TEXT
    A
    B
  7. 粗箭头连接

    graph LR;

    A ==> B

    A
    B
  8. 带文本的粗连接

    graph LR;

    A == TEXT ==> B

    TEXT
    A
    B

4. 破坏语法的特殊字符

  1. 将文本放在引号内一遍渲染复杂字符

    graph LR;

    id1["(TEXT)"]

    此处不加引号会出错

    (TEXT)
  2. 实体代码转义字符1

    graph LR;

    A[“TEXT WITH QUOTE#quot;”] -->B

    TEXT WITH QUOTE#quot;
    B

5.子图1

  1. 模式

    subgraph title

    ​ graph definition

    end

    示例:

    graph TB;

    ​ c1 --> a2;

    ​ subgraph one;

    ​ a1 --> a2;

    ​ end;

    ​ subgraph two;

    ​ b1 --> b2;

    ​ end;

    ​ subgraph three;

    ​ c1 --> c2;

    ​ end;

    graph TB;
    	c1 --> a2;
    	subgraph one;
    	a1 --> a2;
    	end;
    	subgraph two;
    	b1 --> b2;
    	end;
    	subgraph three;
    	c1 --> c2;
    	end;
    

    *:换行和缩进以及分号都不是必须的

6. 相互作用

主要学习mermaid在markdown中的运用,此部分在markdown中无效

7. 样式和类

  1. 连接样式

    graph LR;
    A1 --> B1;
    A2 --> B2;
    linkStyle 1 stroke:#ff3,stroke-width:4px;

    A1
    B1
    A2
    B2

    *:因为连接线没有id,所以要设置其样式要指定是第几条连接线,索引从0开始

  2. 对节点设置样式

    grpah LR;
    id1(Start)–>id2(Stop);
    style id1 fill:#f9f,stroke:#333,stroke-width:4px;
    style id2 fill:#ccf,stroke:#f66,stroke-width:2px,stroke-dasharray: 5, 5;

    Start
    Stop
  3. 可以定义样式类,再设置到对应节点上1

    定义类:

    classDef className fill:#f9f,stroke:#333,stroke-width:4px;

    附加到节点:

    class nodeId1 className;

    class nodeId1,nodeId2 className;

    graph LR;
    id1(Start) --> id2(Stop)
    classDef c1 fill:#f9f,stroke:#333,stroke-width:4px;
    class id1,id2 c1;

    Start
    Stop
  4. CSS类

    markdown不支持

  5. 默认类

    如果一个类被命名为default,则会被分配给所有没有特定类定义的类(暂不清楚含义)

8. 对fontawesome的基本支持1

graph TD
B[“fa:fa-twitter for peace”]
B–>C[fa:fa-ban forbidden]
B–>D(fa:fa-spinner);
B–>E(A fa:fa-camera-retro perhaps);

for peace
forbidden
A perhaps

具体支持哪些图标需要对照fontawesome进行测试

9. 格式问题

  1. 语句结尾分号是可选的
  2. 节点和连接线之间允许单个空格,但是节点及其文本和连接及其文本之间不应该有空格

  1. CSDN的markdown编辑器不支持此功能 ↩︎ ↩︎ ↩︎ ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章