Contents
  1. 1. TOML 的目标
  2. 2. 官方示例
  3. 3. 注释
  4. 4. 字符串
  5. 5. 布尔值
  6. 6. 数组

TOML 的全称是 Tom’s Obvious, Minimal Language,因为它的作者是 GitHub 联合创始人 Tom Preston-Werner, TOML 这个名字贼逗。

TOML 是目录最优秀的配置文件格式方案,相较于yaml、json、ini,优势很明显。目前很多新项目直接使用 TOML作为配置文件的格式,比如golang官方的go.mod。

TOML 的目标

TOML 的目标是成为一个极简的配置文件格式。TOML 被设计成可以无歧义地被映射为哈希表,从而被多种语言解析。

官方示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
title = "TOML 例子"

[owner]
name = "Tom Preston-Werner"
organization = "GitHub"
bio = "GitHub Cofounder & CEO\nLikes tater tots and beer."
dob = 1979-05-27T07:32:00Z # 日期时间是一等公民。为什么不呢?

[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
connection_max = 5000
enabled = true

[servers]

# 你可以依照你的意愿缩进。使用空格或Tab。TOML不会在意。
[servers.alpha]
ip = "10.0.0.1"
dc = "eqdc10"

[servers.beta]
ip = "10.0.0.2"
dc = "eqdc10"

[clients]
data = [ ["gamma", "delta"], [1, 2] ]

# 在数组里换行没有关系。
hosts = [
"alpha",
"omega"
]

注释

使用 # 注释:

1
2
# I am a comment. Hear me roar. Roar.
key = "value" # Yeah, you can do this.

字符串

1
2
wrong = "C:\Users\nodejs\templates" # 注意:这不会生成合法的路径。
right = "C:\\Users\\nodejs\\templates"

布尔值

1
2
3
# 布尔值永远是小写
true
false

数组

数组使用方括号包裹。空格会被忽略。元素使用逗号分隔。注意,不允许混用数据类型。

1
2
3
4
5
[ 1, 2, 3 ]
[ "red", "yellow", "green" ]
[ [ 1, 2 ], [3, 4, 5] ]
[ [ 1, 2 ], ["a", "b", "c"] ] # 这是可以的。
[ 1, 2.0 ] # 注意:这是不行的。

以上基本覆盖了配置的使用场景,TOML 各个语言支持都很好,直接使用即可。

Contents
  1. 1. TOML 的目标
  2. 2. 官方示例
  3. 3. 注释
  4. 4. 字符串
  5. 5. 布尔值
  6. 6. 数组