Skip to content

Graphviz 圖表

VMark 可直接在你的 Markdown 文件中渲染 Graphviz DOT 圖。圖表透過 Graphviz 的 WASM 建置版本(@viz-js/viz)在本機渲染——不需要網路連線,也不依賴外部執行檔。

插入圖表

從選單列使用 插入 → Graphviz 圖表(或工具列的插入群組)插入範本圖表——此功能預設未指定快捷鍵,可在設定中自訂。或輸入帶有 dotgraphviz 語言識別符的圍欄程式碼區塊:

markdown
```dot
digraph G {
    rankdir = LR
    start -> parse -> render
    parse -> error [style = dashed]
}
```

兩種圍欄語言的行為完全相同:

圍欄渲染為
```dotGraphviz 圖表
```graphvizGraphviz 圖表

編輯模式

  • 所見即所得模式——程式碼區塊會渲染為圖表。雙擊即可編輯 DOT 原始碼,輸入時會即時預覽(防抖更新);可從編輯標題列儲存或取消。
  • 原始碼模式——將游標置於 ```dot 圍欄內即可顯示浮動圖表預覽(拖曳、調整大小、縮放),與 Mermaid 相同。

平移、縮放與匯出

渲染後的圖表支援與 Mermaid 圖表相同的控制方式:

  • Cmd/Ctrl + 滾動 縮放,拖曳可平移,重置按鈕可重新置中
  • 透過匯出按鈕 匯出為 PNG(明亮或深色背景)

引擎與佈局

圖表預設使用 dot 引擎(階層式/分層佈局)進行佈局。若要使用其他引擎,請在圖中設定標準的 Graphviz layout 屬性——這項設定會保留在文件裡,在其他任何 Graphviz 工具中也同樣適用:

markdown
```dot
graph G {
    layout = neato
    a -- b -- c -- a
}
```
引擎佈局風格
dot階層式/分層(預設)
neato彈簧模型(力導向)
fdp力導向,適合較大的圖
sfdp多尺度力導向,適合非常大的圖
circo環狀
twopi放射狀
osage叢集式
patchwork矩形樹狀圖(squarified)

未知的 layout 值會顯示渲染錯誤狀態,處理方式與其他 DOT 錯誤相同。

Graphviz 支援的所有標準 DOT 功能均可使用:子圖與叢集、rank、節點形狀、邊線樣式、HTML 式標籤,以及明確指定的顏色。

主題整合

  • 圖表背景為透明,因此會跟隨編輯器主題。
  • 預設的節點、邊線與文字顏色衍生自目前主題的設計 token,因此圖表在每個主題(White、Paper、Mint、Sepia、Night、Solarized)中都能自然融入,切換主題時也會自動更新。
  • 你在 DOT 原始碼中明確指定的顏色永遠優先於主題預設值——若圖形自行設定了 bgcolorcolorfontcolor,就會完全按照原始碼渲染。

錯誤處理

若 DOT 原始碼有語法錯誤,區塊會顯示渲染錯誤狀態而非圖表。修正原始碼後,預覽會自動重新渲染。

HTML 與 PDF 匯出

匯出的 HTML 與 PDF 文件會嵌入渲染後的 SVG,因此圖表在 VMark 之外的顯示效果完全相同。