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

SoWkIImgIKtAI-FIq7hQkkt9ZhK-GJeXJi_NThvOkEBvabrFTpG_tTZmRDhEfnCcQcboFMlO_MJlvEUx9p-Rrw9Wgv2Mar-Ud04qGKSXMiCdg2R4gKPTJqzFNJDMHq7znVgrJ_kNgYjOSq5OGFKfcKMfoIMP-Naw2YZAkHI0eEP5LzFpffrGzZueexWqARqeiI13Ho4p1MYBUlIpQUtFvg

节点语法

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

RPDTJzfG6CVlpwSuyUOKqj3x4XVs0VO9YXTLwc0fBw5rcr4Ih1CsHzRCERT0vmPnQ1QXGOmH9_fXnddnog-mSoWftRHNFR_d__oVb_QaB5ilsyPoOHMmNOSw8xW8Snaf7Xp8ZphpQ_Iq6u_9K4C1nECEtRt0UmroK2VUALfAWaS3t0bf2ChaO4JQDHcY9GGWVpQHn2d4NeqTxuN1M1ZKa0

边的语法

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

JP31IiD048Rl-nHxSfAmwGl4G0vUV8QGWz8ANYfe3u8MGiWfbU0XUiWXADGQ2aPpQnFQl4mc6z_2YOQQWLrs__dvlzcrRcPdrxF9-VI2jVijDtaRUDBRdfx8qXVyJh59lHmhcepIkWZnCPJbHvljvIwZXenzp9F6VHUy-OnmvM6GogZKLC710i4xIrvYid34C5UTwznW0s609QODH_3lT-

补充说明

给边设置动画效果

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
posted @ 2025-10-27 20:21  顺其自然,道法自然  阅读(18)  评论(0)    收藏  举报