Dhole 語言
所有種類的 Dhole 示意圖都以同樣的方式編寫:無論畫的是什麼,同樣的意思都用同樣的詞來表達。本頁介紹所有種類共通的內容;每個種類的頁面再補充其特有的內容。
四條基本規則
- 讀起來就是對其圖片的描述。 形狀和顏色用單詞命名 ——
[database]、[green]—— 設定則由一個單詞、一個冒號和一個值組成:direction: right。 - 寬容。 Dhole 讀不懂的行會被略過並給出說明 —— 所在行、所在列、哪裡有誤以及應改寫成什麼 —— 其他內容照常繪製。拼錯的單詞會得到它很可能想寫的那個詞作為提示。
- 一致。 在所有種類中,事物都在首次命名處建立,標籤跟在冒號之後,特性寫在其所屬物件後的方括號中,縮排在另一行下方的行從屬於該行。
- 處處相同。 同樣的文字在任何機器上、任何語言環境下、任何一天,都會畫出同樣的圖片。
第一行
第一個既非空行也非註解的行指明要畫什麼,種類單詞之後的內容即為標題。
pie Where the day goes
種類單詞後可以帶一個冒號(gantt: Launch)。匹配這些單詞時會忽略大小寫、空格、連字元和底線,因此 Mind Map、mind-map 和 mindmap 是同一個種類。種類也可以寫成兩個單詞 —— state machine、pie chart、class diagram —— 並被讀作一個。
| 種類 | 其單詞 | 別名 |
|---|---|---|
| 流程圖 | flowchart |
flow, graph, flowchart-v2 |
| 時序圖 | sequence |
sequence diagram, seq |
| 狀態圖 | state |
states, state diagram, state machine, stateDiagram-v2 |
| 類圖 | class |
classes, class diagram, uml |
| 實體圖 | entity |
entities, er, er diagram, entity relationship, database, schema |
| 思維導圖 | mindmap |
mind map, mind, tree |
| 時間線 | timeline |
history, milestones |
| 甘特圖 | gantt |
schedule, plan, gantt chart |
| 餅圖 | pie |
pie chart,以及表示帶中心孔餅圖的 donut、doughnut 或 ring |
| 條形圖 | bar |
bars, bar chart, column, columns, column chart |
| 折線圖 | line |
lines, line chart, line plot |
| 散點圖 | xy |
scatter, xy chart, scatter plot, points |
| 雷達圖 | radar |
radar chart, spider, web |
| 象限圖 | quadrant |
quadrant chart, matrix, quadrants |
| 桑基圖 | sankey |
sankey-beta, flows |
| 表格 | table |
grid |
| 看板 | kanban |
board, kanban board |
如果第一個單詞不是種類名,但只是某個種類名的筆誤 —— 相差一兩個字母 —— 則按該種類繪製,並給出說明。與任何種類名都相去甚遠的單詞會被指出,該示意圖不會繪製。
行、註解和縮排
- 第一個字元為
#的行是註解。註解和空行可以出現在任何位置。 - 縮排在另一行下方的行從屬於該行:步驟屬於其分組,成員屬於其類,分支屬於它所生長出來的想法,卡片屬於其列,訊息屬於其塊。縮排被解讀為巢狀關係,而不是被度量:一行從屬於其上方最近的、縮排更少的那一行,無論兩者相差多少個空格。
- 製表符計為到下一個四列倍數的位置。同時用製表符和空格縮排的行能被讀取,但會收到警告。
- 縮排在不能容納任何內容的行(如設定、單個步驟)下方的行,會被當作未縮排來讀取,並收到警告。
設定
示意圖頂部由設定名、冒號和值組成的行是設定;其他所有行都是示意圖的內容。設定的匹配方式與種類相同 —— 忽略大小寫、空格和連字元 —— 並且每個設定都對應若干個名稱,因此 direction: LR 和 rankdir: LR 是同一個設定。寫了兩次的設定取後一次的值,並會收到警告。
所有種類都接受以下設定:
| 設定 | 別名 | 值 |
|---|---|---|
title |
圖形的標題;第一行中種類之後的文字與此相同 | |
subtitle |
標題下方的一行文字 | |
caption |
source, note |
圖形下方的一行文字 |
theme |
style, look |
主題之一;未指定時為 light |
font |
typeface, face |
字型系列的名稱,用於圖形中的所有文字 |
size |
圖形的寬度和高度(像素):800 x 600、800x600、800 by 600 |
名稱和標籤
一個事物 —— 步驟、狀態、參與者、扇區 —— 在首次命名處建立,再次命名時指的是同一個事物。名稱匹配時忽略大小寫和連續空格,因此 Order food 和 order food 是同一個步驟,並保留其首次出現時的寫法。
名稱可以包含任何字元,但在所在行中具有特殊含義的字元除外 —— 箭頭、後跟空格的冒號、方括號。需要包含這些字元的名稱要放在引號中,直引號或彎引號均可:"A -> B" -> C。在引號內,\" 表示引號,\\ 表示反斜槓。
在由方框和連線組成的示意圖中,可以在單獨一行上為短名稱指定一個較長的標籤,這樣書寫箭頭時仍然簡短:
flowchart
pay: Pay at the till
cart -> pay
冒號
一行會在第一個後跟空格的冒號處、在位於行尾的冒號處,或在全形冒號 : 處被切分;若這些都沒有,則在第一個任意形式的冒號處切分。因此一天中的時刻能保留其冒號 —— 09:00: Gates open 表示時間 09:00 —— 而 Start->End:yes 依然有其標籤。冒號之前是這一行所描述的物件;冒號之後是它的標籤、值或資料。
特性
事物後方括號中的單詞是它的特性,以逗號分隔:Enjoy [end, good]。單詞可以是什麼取決於它所屬的物件 —— 形狀屬於流程圖,鍵屬於實體 —— 並列在每個種類的頁面上。顏色和角色適用於所有種類。
不屬於其中任何一種的單詞會收到警告;如果有相近的詞,會提示它很可能想寫的詞 —— 'rond' is not something a step can be. Write 'round' if that is what you mean. —— 否則會列出所有可用的詞。未閉合的方括號會被指出,但其中的單詞仍會被讀取。
顏色和角色
| 單詞 | 別名 | 含義 |
|---|---|---|
blue |
藍色 | |
orange |
橙色 | |
green |
綠色 | |
yellow |
amber, gold |
黃色 |
pink |
magenta |
粉色 |
purple |
violet |
紫色 |
red |
紅色 | |
teal |
cyan |
青色 |
grey |
gray |
主題的低調墨色 |
accent |
highlight, primary |
主題自身的第一種顏色 |
good |
ok, success, done, yes |
綠色 |
bad |
error, fail, failure, danger, no |
紅色 |
warn |
warning, caution |
黃色 |
muted |
quiet, faded, disabled, inactive |
以主題的低調墨色繪製的方框或連線 |

顏色並不是固定值:它是主題調色盤中與該色相最接近的顏色,因此用另一個主題繪製的示意圖,會以該主題的顏色保留其含義。如果調色盤中沒有與某色相接近的顏色,則使用最接近的那一種 —— 在 light 主題中,teal 就是它的綠色。角色說明的是事物的含義,而不是它的外觀,通常更值得這樣寫。
值
| 值 | 寫法 |
|---|---|
| 數字 | 12、-3.5、1_000_000、1e6 —— 在任何語言環境下都以點號作為小數點;數字之間的底線會被忽略 |
| 百分比 | 40%,用於表示佔比的地方 |
| 範圍 | 0..100、0 to 100、0 – 100、0~100 |
| 日期 | 2026-11-02、2026-11-02 14:30、2026/11/02、2026-11、2026 |
| 時長 | 3d、2w、4h、30min、1d 4h、1.5 days |
| 開關 | on、yes、true、show,或 off、no、false、hide、none |
| 方向 | down、right、up、left;也可寫作 TD、TB、top down、vertical、LR、left to right、horizontal、across、BT、bottom up、RL、right to left |
| 尺寸 | 800 x 600,單位為像素 |
| 列表 | 以逗號分隔的各項:North, South, East |
箭頭
流程圖、狀態圖、類圖、實體圖和時序圖,都通過在兩個名稱之間書寫箭頭來連線這兩個事物。一行可以串聯多個箭頭 —— A -> B -> C —— 冒號後的標籤屬於該行的最後一個箭頭。
| 箭頭 | 繪製 |
|---|---|
-> |
帶箭頭的線 |
-->, ..> |
帶箭頭的虛線 |
=>, ==> |
帶箭頭的粗線 |
->>, -->> |
與 -> 和 --> 相同 |
<-, <--, <.. |
指回第一個名稱的箭頭:B <- A 即 A -> B |
<->, <-->, <=> |
兩端都有箭頭 |
--, --- |
無箭頭的線 |
.. |
無箭頭的虛線 |
== |
無箭頭的粗線 |

可能成為名稱一部分的箭頭 —— --、---、..、== —— 只有在兩側各有一個空格時才是箭頭,因此 well-known -- trusted 連線兩個名稱,而 well--known 是一個名稱。其他箭頭不需要空格:A->B 就是一個箭頭。類圖增加了 UML 的端點符號,實體圖增加了計數 —— 參見類圖和實體圖。
形似箭頭但該種類並不支援的寫法 —— -.->、--x、~~~ —— 會被指出,並列出該種類支援的箭頭;該行會被略過,而不會被當作以其各個片段命名的方框來讀取。
在一段文字中編寫多張示意圖
一行僅由三個或更多短橫線組成時,會結束一張示意圖並開始下一張。每張示意圖都有自己的第一行,它們並排繪製 —— 不超過四張時每行兩張,超過四張時每行三張 —— 各有自己的標題,整個圖形採用第一張的主題、副標題和說明文字。
pie Where the day goes
Sleep: 8
Work: 8
Family: 4
Reading: 2
Errands: 2
---
bar Sales by region
labels: North, South, East, West
y axis: Units
2025: 42, 31, 27, 18
2026: 45, 28, 34, 22
---
line A week of weather
labels: Mon, Tue, Wed, Thu, Fri, Sat, Sun
y axis: Degrees
points: on
Low: 3, 5, 4, 6, 7, 5, 4
High: 9, 11, 10, 12, 14, 13, 11
---
xy Height and weight
x axis: Height (cm)
y axis: Weight (kg)
trend: on
Team A: (160, 55), (165, 61), (170, 66), (175, 70), (180, 79), (185, 84)
Team B: (150, 48), (158, 53), (163, 60), (171, 63), (178, 71)

主題
theme: 接受繪圖框架的任意主題 —— light(預設)、dark、presentation、minimal、classic、print —— 或取自 Divooka Compute 調色盤的四個主題之一:golden、quiet gold、silver gold 和 high contrast,它們採用編輯器自身的底色、墨色和顏色。繪製好的示意圖中沒有任何固定顏色,因此繪圖框架的 Set Theme 可以在 Dhole 示意圖繪製完成後為其重新著色,就像為任何圖表重新著色一樣。

語言中的詞
Dhole 讀取的詞 —— flowchart、direction、note、after —— 在任何語言環境下都是英文,正如程式語言的關鍵字一樣;而示意圖所表達的內容可以使用任何語言,中文或機器字型所覆蓋的任何文字都會按原樣繪製。Dhole 對文字給出的說明則使用讀者的語言:Write Dhole 的卡片以編輯器的語言列出問題,而 Draw Dhole 的 Problems 輸出為英文,在任何機器上讀起來都一樣。