探索mermaid語法

Mermaid是一種開源的,簡單易學的,支持多種圖表的語義化標記語言。它使用markdown樣式的語法,可以輕鬆地創建流程圖、時序圖、甘特圖等豐富多彩的圖表。

一、基本概念

Mermaid語法是基於markdown語法的,因此它的語法非常簡單易學。它的核心是通過給定節點和關係來定義圖表,節點的類型可以是實體、子流程等等,關係也可以是不同的類型。

  graph LR; //定義一個圖表,LR表示從左到右的方向
      A-->B;  //表示A與B之間有一條箭頭連接,箭頭指向B
      B-->C;  //表示B與C之間有一條箭頭連接,箭頭指向C

在上面的例子中,我們定義了一個從左到右的圖表,由三個節點A、B、C組成,其中A指向B,B指向C。這三個節點之間的關係可以用五種不同的類型表示:

  • –>表示單向箭頭
  • –>>表示單向箭頭帶label
  • ==表示雙向箭頭
  • ==>表示雙向箭頭帶label
  • –x表示有線段連接的節點關係

使用這些節點類型和關係類型,我們可以輕鬆地創建豐富多彩的圖表。

二、流程圖

流程圖是Mermaid中最基本的圖表類型之一,它通常用於描述一個過程或者系統的流程。下面是一個簡單的流程圖例子:

  graph TB; //定義一個向下的流程圖
      開始-->預處理; //開始節點與預處理節點之間有一個箭頭,箭頭指向預處理
      預處理-->|未完成|處理A;
      預處理-->|已完成|處理B;
      處理A-->處理B; //處理A節點與處理B節點之間有一個箭頭,箭頭指向處理B
      處理B-->結束; //處理B節點與結束節點之間有一個箭頭,箭頭指向結束

在上面的例子中,我們定義了一個向下的流程圖,共有五個節點:開始、預處理、處理A、處理B、結束。其中預處理與處理B之間有兩種不同的關係類型:未完成和已完成,這兩種關係都帶有label。

三、序列圖

序列圖是Mermaid中另一個基本的圖表類型,它通常用於描述多個對象之間的交互過程。下面是一個簡單的序列圖例子:

  sequenceDiagram; //定義一個序列圖
      participant Alice; //定義一個參與者節點,名稱為Alice
      participant Bob; //定義另一個參與者節點,名稱為Bob
      Alice->>Bob: Hello Bob, how are you? //Alice向Bob發送消息
      Bob-->>Alice: I'm fine, thanks. //Bob向Alice返回消息

在上面的例子中,我們定義了一個序列圖,共有兩個參與者節點:Alice和Bob。其中,Alice向Bob發送了一條消息,Bob回復了Alice的消息。

四、甘特圖

甘特圖是Mermaid中比較特殊的一個圖表類型,它通常用於描述一個任務在時間軸上的分佈情況。下面是一個簡單的甘特圖例子:

  gantt; //定義一個甘特圖
      dateFormat  YYYY-MM-DD; //定義日期格式
      title 項目計劃; //定義圖表標題
      section 設計; //定義圖表的第一部分,名稱為設計
      開始日期  : 2018-01-01, 2d; //第一段任務的開始日期和天數
      設計階段1 : done, 開始日期, 1d; //第二段任務的開始日期和天數,以及完成狀態
      設計階段2 : done, 設計階段1, 1d; //第三段任務的開始日期和天數,以及完成狀態
      設計階段3 : active, 設計階段2, 2d; //第四段任務的開始日期和天數,以及激活狀態
      section 開發; //定義圖表的第二部分,名稱為開發
      開發階段1 : active, 設計階段3, 3d;
      開發階段2 : 開發階段1, 2d;
      開發階段3 : 開發階段2, 2d;
      section 測試; //定義圖表的第三部分,名稱為測試
      測試階段1 : 開發階段3, 3d;
      測試階段2 : 測試階段1, 2d;
      測試階段3 : 測試階段2, 2d;
      section 部署; //定義圖表的第四部分,名稱為部署
      部署階段1 : 測試階段3, 3d;
      部署階段2 : 部署階段1, 2d;
      部署階段3 : 部署階段2, 2d;
      section 維護; //定義圖表的第五部分,名稱為維護
      維護階段1 : 部署階段3, 3d;
      維護階段2 : 維護階段1, 2d;
      維護階段3 : 維護階段2, 2d;

在上面的例子中,我們定義了一個甘特圖,共有五個部分:設計、開發、測試、部署、維護。每個部分中又包含了不同的任務節點,其中done表示任務已經完成,active表示任務正在進行中。

五、公式圖

Mermaid還支持公式圖,它可以用來描述一些複雜的數學公式。下面是一個簡單的公式圖例子:

  graph TB; //定義一個向下的圖表
      A((x  ))-->B(((y  ))); //定義兩個節點,節點名稱包含一個空格,中間加上< >表示公式圖
      B-->C(( z )); //定義另一個節點,節點名稱包含一個空格,中間加上< >表示公式圖

在上面的例子中,我們定義了三個節點A、B、C,其中節點名稱包含一個空格,中間使用< >符號表示公式圖。

六、結語

通過以上的介紹,我們可以了解到Mermaid是一種簡單易學的標記語言,有着豐富的圖表類型和靈活的語法結構。我們可以利用Mermaid創建各種不同類型的圖表,從而更好地展示我們的想法和數據。

原創文章,作者:MIJLG,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/369561.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
MIJLG的頭像MIJLG
上一篇 2025-04-13 11:45
下一篇 2025-04-13 11:45

相關推薦

  • Python語法大全解析

    本文旨在全面闡述Python語法,並提供相關代碼示例,幫助讀者更好地理解Python語言。 一、基礎語法 1、Python的注釋方式 # 這是單行注釋 “”” 這是多行注釋,可以注…

    編程 2025-04-29
  • Python中複數的語法

    本文將從多個方面對Python中複數的語法進行詳細的闡述。Python中的複數是指具有實部和虛部的數,其中實部和虛部都是浮點數。它們可以用「實數+虛數j」的形式表示。例如,3 + …

    編程 2025-04-29
  • parent.$.dialog是什麼技術的語法

    parent.$.dialog是一種基於jQuery插件的彈出式對話框技術,它提供了一個方便快捷的方式來創建各種類型和樣式的彈出式對話框。它是對於在網站開發中常見的彈窗、提示框等交…

    編程 2025-04-28
  • 編譯原理語法分析思維導圖

    本文將從以下幾個方面詳細闡述編譯原理語法分析思維導圖: 一、語法分析介紹 1.1 語法分析的定義 語法分析是編譯器中將輸入的字符流轉換成抽象語法樹的一個過程。該過程的目的是確保輸入…

    編程 2025-04-27
  • Python進階語法全面解析

    Python語言作為一種廣泛應用於人工智能、數據分析、雲計算等多個領域的編程語言,擁有廣泛的社區和強大的生態系統。Python提供了基本語法以及常用函數和模塊,用於解決大量常規編程…

    編程 2025-04-27
  • LL(1)語法分析器:從語法規則到語法樹

    在編譯原理中,語法分析是編譯器的一個重要階段。語法分析器的作用是將代碼轉換成語法樹,以便後續階段進行處理。LL(1)語法分析器是語法分析器的一種,它採用的是自頂向下的分析方法,可以…

    編程 2025-04-25
  • 深入分析Java Foreach語法

    一、Foreach介紹 Java的Foreach語法是一種迭代語法,被廣泛應用於遍曆數組或集合。其優點是在代碼數量和可讀性方面均佔有優勢,不需要額外定義計數器等變量,便可輕鬆遍歷集…

    編程 2025-04-24
  • 深入解析Mustache語法

    Mustache是一個輕量級、理性化的語法模板引擎,被廣泛應用於各種編程語言中,例如JavaScript、Python、Ruby等。本文章將通過多個方面,詳細闡述Mustache語…

    編程 2025-04-23
  • InfluxDB 語法詳解

    一、基本概念 InfluxDB 是一款開源的分佈式時序數據庫,採用 Go 語言編寫。在 InfluxDB 中,數據被組織為不同的時間序列(time series),每個時間序列由一…

    編程 2025-04-23
  • highlight.js:優雅的代碼語法高亮工具

    一、基本介紹 highlight.js是一款用Javascript編寫的代碼語法高亮工具。使用它可以為你的頁面提供優雅的代碼呈現,高亮展示出不同編程語言的關鍵字、注釋、變量等內容。…

    編程 2025-04-23

發表回復

登錄後才能評論