简体中文
English 简体中文 繁體中文
Methodox 首页

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 以主题的低调墨色绘制的方框或连线

步骤上的每种颜色和角色:blue、orange、green、yellow、pink、purple、red、teal、grey、accent、good、bad、warn 和 muted

颜色并不是固定值:它是主题调色板中与该色相最接近的颜色,因此用另一个主题绘制的示意图,会以该主题的颜色保留其含义。如果调色板中没有与某色相接近的颜色,则使用最接近的那一种 —— 在 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 示意图绘制完成后为其重新着色,就像为任何图表重新着色一样。

同一张流程图的四种主题:light、dark、golden 和 silver gold

语言中的词

Dhole 读取的词 —— flowchart、direction、note、after —— 在任何语言环境下都是英文,正如编程语言的关键字一样;而示意图所表达的内容可以使用任何语言,中文或机器字体所覆盖的任何文字都会按原样绘制。Dhole 对文本给出的说明则使用读者的语言:Write Dhole 的卡片以编辑器的语言列出问题,而 Draw Dhole 的 Problems 输出为英文,在任何机器上读起来都一样。