Markdownの高度な使用のフローチャート

3129 ワード

フローチャートのMarkdownでの表現形式はコードブロックであり、コードブロック言語はmermaidと表記されている.主な内容は大きく分けて方向、ノード、ノード間の接続関係で、以下はこの3つの点をめぐって整理します.
mermaidはフローチャート、ガントチャート、タイミングチャートをサポートしていますが、今回の試みでは、図面を描くには専門の図面ツールを使うと結論し、これは簡単な選択肢として簡単なシーンでしか使えません.だからここではフローチャートの使用をまとめるだけで、他の2つは必要ありません.あまり使いにくいわけではありません.
フローチャートの方向
フローチャートは全体的に横方向と縦方向の2種類に分けられる.全部で4つの方向:T-上、BD-下;L-左、R-右.使用方法は横方向の2つの結合、縦方向の2つの結合です.例えば左からLR、上から下へTBまたはTDである.
上から下へ:
​~~~mermaid
graph TD
A --> B
​~~~ 

上から下への表示:
A
B
左から右へ:
​~~~mermaid
graph LR
    A --> B
​~~~ 

効果を左から右に表示:
A
B
フローチャートノード
以下に示すフローチャートノードには,矩形'[]',円角矩形'()',非対称矩形'>]',菱形'{}',円形'()'がある.各ノードの前には、そのノードIDを一意に識別する必要がある.次の例を示します.
​~~~mermaid
graph TD
    a1[     ]
    a2(       )
    a3>        ]
    b1{     }
    c1((     ))
​~~~ 

その展示効果は以下の通りである.
テキスト付き長方形
テキスト付き角丸長方形
テキスト付き非対称長方形
テキスト付き菱形
テキスト付き円形
ノード間の接続関係
  • ノード間の接続線は、実線'---'、太字実線'==='、破線'-.-'に分けられる.
  • 矢印付き接続線は、矢印付き実線'-->'、矢印付き太字実線'=>'、矢印付き破線'-.--->'に分けられます.
  • 接続ラインにコメントを付ける場合は、上記の2つのコメントを付ける方法は次のとおりです.
  • 実線備考'--yes-',太字実線備考'yes=',破線備考'-.yes.-'.
  • 矢印付き実線コメント'--yes->>>'、矢印付き太字実線コメント'yes>'、矢印付き破線コメント'-.yes.->'

  • ここで、各接続シンボルの左側は開始ノード、右側は終了ノードであり、同じノードによって異なるノードを指すこともできるし、異なるノードによって同じノードを指すこともでき、様々な指向方式がノードIDによって表記されることを実現する.
    例は次のとおりです.
    ​~~~mermaid
    graph LR
        A10[A10] --- A11[A11]
        A20[A20] === A21[A21]
        A30[A30] -.- A31[A31]
        B10[B10] --> B11[B11]
        B20[B20] ==> B21[B21]
        B30[B30] -.-> B31[B31]
        C10[C10] --yes--> C11[C11]
        C20[C20] ==yes==> C21[C21]
        C30[C30] -.yes.-> C31[C31]
    ​~~~ 

    その展示効果は以下の通りである.
    yes
    yes
    yes
    A10
    A11
    A20
    A21
    A30
    A31
    B10
    B11
    B20
    B21
    B30
    B31
    C10
    C11
    C20
    C21
    C30
    C31
    同じノードから始まり、以下のように使用され、後から同じノードを使用する場合は、IDのみを指定すればよい.
    ​~~~mermaid
    graph LR
        A[    ] --> B[    1]
        A --> C[    2]
    ​~~~ 

    開始ノード
    エンドノード1
    エンドノード2
    バブルソートフローチャート
    ここでは、上のいくつかの点を簡単にバブルソートで練習し、まずバブルソートのダミーコードを貼り付けます.
    BUBBLESORT(A)
        for i = 1 to A.length-1
            for j = A.length downto i + 1
                if A[j] < A[j - 1]
                    exchange A[j] with A[j - 1] 

    デモコードは次のとおりです.
    ​~~~mermaid
    graph TD
        start([  ]) -->   arr[  arr]
          arr -->   len[len = arr.length]
          len -->   i[i = 0]
          i -->      {i < len}
              --yes-->   j[j = 1]
          j -->      {"j < len - i ?"}
              --yes-->   {"arr[j - 1] < arr[j] ?"}
           --yes-->       ["int temp = arr[j - 1]"]
               -->   aj["arr[j - 1] = arr[j]"]
          aj -->   aj-1["arr[j] = temp"]
          aj-1 --> j  ["j++"]
        j   -->      
           --no--> j