这是 TOML 格式配置文件语法的快速参考备忘清单。
入门
介绍
TOML 是一种最小的配置文件格式,由于明显的语义而易于阅读。
示例
1 2 3 4 5 6
| bool = true date = 2006-05-27T07:32:00Z string = "hello" number = 42 float = 3.14 scientificNotation = 1e+12
|
注释
整数
1 2 3 4
| int1 = +42 int2 = 0 int3 = -21 integerRange = 64
|
浮点数
1 2 3
| float2 = 3.1415 float4 = 5e+22 float7 = 6.626e-34
|
布尔值
1 2 3
| bool1 = true bool2 = false boolMustBeLowercase = true
|
时间日期
1 2 3 4 5 6
| date1 = 1989-05-27T07:32:00Z date2 = 1989-05-26T15:32:00-07:00 date3 = 1989-05-27T07:32:00 date4 = 1989-05-27 time1 = 07:32:00 time2 = 00:32:00.999999
|
字符串
1 2 3
| str1 = "I'm a string." str2 = "You can \"quote\" me." str3 = "Name\tJos\u00E9\nLoc\tSF."
|
See: Strings
Table
1 2 3
| [owner] name = "Tom Preston-Werner" dob = 1979-05-27T07:32:00-08:00
|
See: Tables
数组
1 2 3
| array1 = [1, 2, 3] array2 = ["Commas", "are", "delimiter"] array3 = [8001, 8001, 8002]
|
友好数组
1 2 3 4 5 6
| array1 = [ "Don't mix", "different", "types" ] array2 = [ [ 1.2, 2.4 ], ["all", 'strings', """are the same""", '''type'''] ] array3 = [ "Whitespace", "is", "ignored" ]
|
TOML 字符串
基本字符串
1 2 3
| str1 = "I'm a string." str2 = "You can \"quote\" me." str3 = "Name\tJos\u00E9\nLoc\tSF."
|
多行基本字符串
1 2 3 4 5 6 7 8 9
| str1 = """ Roses are red Violets are blue"""
str2 = """\ The quick brown \ fox jumps over \ the lazy dog.\ """
|
用行末反斜杠自动剔除非空白字符前的任何空白字符
多行文字字符串
1 2 3 4 5 6 7
| re = '''\d{2} apps is t[wo]o many''' lines = ''' The first newline is trimmed in raw strings. All other whitespace is preserved. '''
|
由于没有转义,无法在由单引号包裹的字面量字符串中写入单引号
字面量字符串
1 2 3 4
| path = 'C:\Users\nodejs\templates' path2 = '\\User\admin$\system32' quoted = 'Tom "Dubs" Preston-Werner' regex = '<\i\c*\s*>'
|
用单引号括起来。不允许转义。
TOML 数字
整数、浮点数、无穷甚至非数都是支持的。你可以用科学计数法甚至千分符
整数
1 2 3 4
| int1 = +99 int2 = 42 int3 = 0 int4 = -17
|
十六进制带有前缀 0x
1 2 3
| hex1 = 0xDEADBEEF hex2 = 0xdeadbeef hex3 = 0xdead_beef
|
八进制带有前缀 0o
1 2
| oct1 = 0o01234567 oct2 = 0o755
|
二进制带有前缀 0b
both
分隔符
1
| float8 = 224_617.445_991_228
|
小数
1 2 3
| float1 = +1.0 float2 = 3.1415 float3 = -0.01
|
指数
1 2 3
| float4 = 5e+22 float5 = 1e06 float6 = -2E-2
|
无穷
1 2 3
| infinite1 = inf infinite2 = +inf infinite3 = -inf
|
非数
1 2 3
| not1 = nan not2 = +nan not3 = -nan
|
TOML 日期与时刻
TOML 支持日期、时刻、日期时刻,带或者不带时区偏移
坐标日期时刻
1 2 3
| odt1 = 1979-05-27T07:32:00Z odt2 = 1979-05-27T00:32:00-07:00 odt3 = 1979-05-27T00:32:00.999999-07:00
|
各地日期时刻
1 2
| ldt1 = 1979-05-27T07:32:00 ldt2 = 1979-05-27T00:32:00.999999
|
各地日期
各地时刻
1 2
| lt1 = 07:32:00 lt2 = 00:32:00.999999
|
TOML Tables
基本的
foo
和 bar
是名为name
的表中的键
嵌套
1 2 3 4
| [table1] foo = "bar" [table1.nested_table] baz = "bat"
|
类数组
1 2 3 4 5 6
| [[comments]] author = "Nate" text = "Great Article!" [[comments]] author = "Anonymous" text = "Love it!"
|
↓ 等效的 JSON
1 2 3 4 5 6 7 8 9 10 11 12
| { "comments" : [ { "author" : "Nate", "text" : "Great Article!" }, { "author" : "Anonymous", "text" : "Love It!" } ] }
|
点分隔
1 2
| [dog."tater.man"] type = "pug"
|
↓ 等效的 JSON
1 2 3 4 5 6 7
| { "dog": { "tater.man": { "type": "pug" } } }
|
多嵌套
1 2
| [foo.bar.baz] bat = "hi"
|
↓ 等效的 JSON
1 2 3 4 5 6 7 8 9
| { "foo" : { "bar" : { "baz" : { "bat" : "hi" } } } }
|
忽略空格
1 2 3 4
| [a.b.c] [ d.e.f ] [ g . h .i ] [ j . "ʞ" .'l' ]
|
内联表
1 2 3
| name = { first = "Tom", last = "Preston-Werner" } point = { x = 1, y = 2 } animal = { type.name = "pug" }
|
另见