Mermaid-Flowchart流程图学习
前言
前面的文章描述了语法图,本文章用语法图描述最重要的Mermaid-Flowchart流程图语法。
参考:
流程图指南:https://mermaid.js.org/syntax/flowchart.html
在线编辑器:https://mermaid.live/edit
总体结构
主要由节点(含子图)、边构成。
@startebnf
(*其中LR,TB等表示布局方向*)
总体结构 = flowchart, [(LR|TB|'...')], '语句' ;
语句 = direction, (LR|TB|'...')
    |节点
    |边
    |subgraph, id, ['[文本]'], '语句', 'end'
    ;
@endebnf

节点语法
@startebnf
节点 = id(*节点标识符*), ['节点形状和文本'];
节点形状和文本 = '[' ,方框, ']'
    |'(' , 圆角方框, ')'
    |'([', 体育场形状, '])'
    |'[[', 双线方框, ']]'
    |'[(', 圆柱, ')]'
    |'((', 圆形, '))'
    |'>', 箭头方框, ']'
    |'{', 菱形, '}'
    |'{{', 六边形方框, '}}'
    |'[/', 平行四边形, '/]'
    |'[\', 平行四边形, '\]'
    |'[\', 梯形, '/]'
    |'[/', 梯形, '\]'
    |'(((', 双环圆形, ')))';
(* 如果需要更多的图形、图标,甚至只有形状,可以使用下面的语法: 
A@{ shape: processes, label: "Multiple processes" }*)
节点 = id,'@','{','属性列表','}';
属性列表= shape,':',value
    |label,':',value
    |其它属性对
    (* 参考官网:https://mermaid.js.org/syntax/flowchart.html *)
    ;
@endebnf

边的语法
@startebnf
边 = 节点ID组, {([边id(*用于后续设置边的属性, 比如动画*), '@', 边类型], 节点ID组)}- ;
节点ID组 = 节点ID, {['&', 节点ID]}-;
(* 节点组简化连接构建 *)
边类型 = ['o'|'x'|'<'], ('--'|'=='|'-.')
    , '表示加长的边, 多一个横线就表示加长一个节点的长度'*['-'|'.']
    , ('o'|'x'|'<'|'-');
@endebnf

补充说明
给边设置动画效果
flowchart LR
  A e1@==> B
  e1@{ animate: true }
flowchart LR
  A e1@--> B
  e1@{ animation: fast }
flowchart LR
  A e1@--> B
  classDef animate stroke-dasharray: 9,5,stroke-dashoffset: 900,animation: dash 25s linear infinite;
  class e1 animate
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号