青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

TOML: GitHub 這是要革 YAML 的命呀!

轉載自:https://segmentfault.com/a/1190000000477752

GitHub 目前的新項目已經轉用 CoffeeScript 了。CoffeeScript 比 JavaScript 要簡潔優雅得多。同樣地,GitHub 也覺得 YAML 不夠簡潔優雅,因此搗鼓出了一個TOML。

TOML 的全稱是 Tom's Obvious, Minimal Language,因為它的作者是 GitHub 聯合創始人 Tom Preston-Werner 。

TOML 的目標

TOML 的目標是成為一個極簡的配置文件格式。TOML 被設計成可以無歧義地被映射為哈希表,從而被多種語言解析。

例子

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"
]
TOML 是大小寫敏感的。

注釋

使用 # 表示注釋:

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

字符串

字符串和 JSON 的定義一致,只有一點除外: TOML 要求使用 UTF-8 編碼。

注釋以引號包裹,里面的字符必須是 UTF-8 格式。引號、反斜杠和控制字符(U+0000 到 U+001F)需要轉義。

"I'm a string. \"You can quote me\". Name\tJos\u00E9\nLocation\tSF." 

常用的轉義序列:

\b     - backspace       (U+0008)
\t     - tab             (U+
0009)
\n     - linefeed        (U+000A)
\f     - form feed       (U+000C)
\r     - carriage return (U+000D)
\
"     - quote           (U+0022)
\/     - slash           (U+002F)
\\     - backslash       (U+005C)
\uXXXX - unicode         (U+XXXX)

使用保留的特殊字符,TOML 會拋出錯誤。例如,在 Windows 平臺上,應該使用兩個反斜杠來表示路徑:

wrong = "C:\Users\nodejs\templates" # 注意:這不會生成合法的路徑。
right 
= "C:\\Users\\nodejs\\templates"

二進制數據建議使用 Base64 或其他合適的編碼。具體的處理取決于特定的應用。

整數

整數就是一些沒有小數點的數字。想用負數?按直覺來就行。整數的尺寸最小為64位。

浮點數

浮點數帶小數點。小數點兩邊都有數字。64位精度。

3.1415
-0.01 

布爾值

布爾值永遠是小寫。

true
false 

日期時間

使用 ISO 8601 完整格式。

1979-05-27T07:32:00Z 

 數組

數組使用方括號包裹??崭駮缓雎?。元素使用逗號分隔。注意,不允許混用數據類型。

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

數組可以多行。也就是說,除了空格之外,方括號間的換行也會被忽略。在關閉方括號前的最終項后的逗號是允許的。

表格

表格(也叫哈希表或字典)是鍵值對的集合。它們在方括號內,自成一行。注意和數組相區分,數組只有值。

[table] 

在此之下,直到下一個 table 或 EOF 之前,是這個表格的鍵值對。鍵在左,值在右,等號在中間。鍵以非空字符開始,以等號前的非空字符為結尾。鍵值對是無序的。

[table] key = "value" 

你可以隨意縮進,使用 Tab 或空格。為什么要縮進呢?因為你可以嵌套表格。

嵌套表格的表格名稱中使用.。你可以任意命名你的表格,只是不要用點,點是保留的。

[dog.tater] type = "pug" 

以上等價于如下的 JSON 結構:

{ "dog": { "tater": { "type": "pug" } } } 

如果你不想的話,你不用聲明所有的父表。TOML 知道該如何處理。

# [x] 你
# [x.y] 不需要
# [x.y.z] 這些
[x.y.z.w] # 可以直接寫 

空表是允許的,其中沒有鍵值對。

只要父表沒有被直接定義,而且沒有定義一個特定的鍵,你可以繼續寫入:

[a.b]
c = 1

[a]
d = 2 

然而你不能多次定義鍵和表格。這么做是不合法的。

# 別這么干!

[a]
b = 1

[a]
c = 2 
# 也別這個干
[a]
b = 1

[a.b]
c = 2 

表格數組

最后要介紹的類型是表格數組。表格數組可以通過包裹在雙方括號內的表格名來表達。使用相同的雙方括號名稱的表格是同一個數組的元素。表格按照書寫的順序插入。雙方括號表格如果沒有鍵值對,會被當成空表。

[[products]]
name 
= "Hammer"
sku 
= 738594937

[[products]]

[[products]]
name 
= "Nail"
sku 
= 284758393
color 
= "gray"

等價于以下的 JSON 結構:

{
  "products": [
    { "name": "Hammer", "sku": 738594937 },
    { },
    { "name": "Nail", "sku": 284758393, "color": "gray" }
  ]
}

表格數組同樣可以嵌套。只需在子表格上使用相同的雙方括號語法。每一個雙方括號子表格回從屬于最近定義的上層表格元素。

[[fruit]]
  name 
= "apple"

  
[fruit.physical]
    color 
= "red"
    shape 
= "round"

  
[[fruit.variety]]
    name 
= "red delicious"

  
[[fruit.variety]]
    name 
= "granny smith"

[[fruit]]
  name 
= "banana"

  
[[fruit.variety]]
    name 
= "plantain"

等價于如下的 JSON 結構:

{
  
"fruit": [
    {
      
"name""apple",
      
"physical": {
        
"color""red",
        
"shape""round"
      },
      
"variety": [
        { 
"name""red delicious" },
        { 
"name""granny smith" }
      ]
    },
    {
      
"name""banana",
      
"variety": [
        { 
"name""plantain" }
      ]
    }
  ]
}

嘗試定義一個普通的表格,使用已經定義的數組的名稱,將拋出一個解析錯誤:

# 不合法的 TOML
[[fruit]]
   name = "apple"

   [[fruit.variety]]
        name = "red delicious"

# 和上面沖突了
[fruit.variety] name =
"granny smith"

來真的?

是的。

但是為什么?

因為我們需要一個像樣的人類可讀的格式,同時能無歧義地映射到哈希表。然后 YAML 的規范有 80 頁那么長,真是發指!不,不考慮 JSON 。你知道為什么。

天哪,你是對的!

哈哈!想幫忙么?發合并請求過來?;蛘呔帉懸粋€解析器。勇敢一點。

實現

如果你有一個實現,請發一個合并請求,把你的實現加入到這個列表中。請在你的解析器的 README 中標記你的解析器支持的 提交SHA1 或 版本號。

校驗

@BurntSushi) - https://github.com/BurntSushi/toml/tree/master/tomlv

TOML 測試套件 (語言無關)

編輯器支持

編碼器


原文 TOML README
翻譯 SegmentFault

posted on 2017-04-15 10:05 楊粼波 閱讀(2636) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美国产亚洲视频| 欧美亚洲日本网站| 欧美午夜电影网| 欧美日本国产视频| 欧美三级韩国三级日本三斤| 欧美日韩另类视频| 国产精品一区三区| 韩国女主播一区二区三区| 亚洲电影免费观看高清完整版| 亚洲第一区色| 夜夜嗨网站十八久久| 中文欧美日韩| 久久精品在线| 亚洲精品在线观看免费| 中文精品在线| 免费高清在线一区| 欧美私人网站| 伊人久久婷婷| 亚洲欧美激情诱惑| 亚洲国产精品福利| 亚洲网在线观看| 久久天天躁夜夜躁狠狠躁2022| 久久野战av| 欧美色道久久88综合亚洲精品| 国产精品一区二区三区观看| 在线观看av一区| 一区二区三区国产精华| 久久久福利视频| 99国产精品久久久久久久| 欧美一区在线视频| 国产精品高潮呻吟久久av黑人| 一区视频在线看| 亚洲视频精品在线| 亚洲国产99| 久久久精品国产免大香伊| 欧美午夜精品一区| 亚洲免费观看高清完整版在线观看熊 | 欧美福利在线| 亚洲女ⅴideoshd黑人| 欧美高清在线| 一区免费在线| 久久久久久久波多野高潮日日 | 亚洲一区免费观看| 亚洲第一黄色| 久久九九全国免费精品观看| 国产精品私房写真福利视频| 亚洲素人在线| 亚洲精品一区二区在线| 欧美高清视频在线播放| 亚洲激情在线激情| 欧美黄色大片网站| 免费亚洲婷婷| 伊人蜜桃色噜噜激情综合| 久久久久久久一区二区| 欧美一区二区三区视频| 国产欧美日韩亚洲精品| 欧美中文字幕视频| 欧美一二三区精品| 国产日韩欧美视频| 久久国产精品99国产精| 香蕉乱码成人久久天堂爱免费| 国产精品久久久久久久一区探花 | 国色天香一区二区| 久久精品国产一区二区电影| 亚洲综合国产| 国户精品久久久久久久久久久不卡 | 国产一区二区成人| 久久综合久久综合这里只有精品| 香蕉视频成人在线观看| 亚洲一区二区三区在线| 亚洲欧美成人网| 国产精品视频久久久| 欧美在线地址| 欧美亚洲免费高清在线观看| 国产日韩久久| 久久综合色播五月| 欧美成人r级一区二区三区| 一本色道88久久加勒比精品 | 欧美日韩另类字幕中文| 亚洲午夜久久久久久久久电影网| 99视频精品免费观看| 国产精品视频一区二区高潮| 久久久激情视频| 欧美成人精品在线视频| 亚洲尤物在线| 久久riav二区三区| 亚洲免费成人av电影| 亚洲一区二区免费看| 又紧又大又爽精品一区二区| 亚洲伦理久久| 国内精品久久久久久久影视蜜臀| 欧美国产欧美综合 | 亚洲第一主播视频| 欧美三级在线播放| 久久亚洲影院| 欧美猛交免费看| 久久精品30| 欧美日韩精品欧美日韩精品 | 久久米奇亚洲| 中日韩在线视频| 久久久国产午夜精品| 亚洲一区欧美激情| 久久免费一区| 欧美一级视频免费在线观看| 欧美a级大片| 久久国产黑丝| 国产精品va在线播放我和闺蜜| 免费日韩一区二区| 国产欧美va欧美va香蕉在| 亚洲片在线观看| 激情成人av| 亚洲在线观看免费视频| 99视频超级精品| 看片网站欧美日韩| 久久精品九九| 国产精品丝袜久久久久久app| 亚洲国产欧美一区二区三区同亚洲 | 欧美国产日韩一区二区| 久久久一区二区三区| 欧美性猛交xxxx免费看久久久 | 亚洲三级影院| 激情久久久久久久| 午夜欧美大片免费观看| 亚洲一区二区3| 欧美经典一区二区三区| 欧美福利一区| 狠狠色狠色综合曰曰| 亚洲字幕一区二区| 亚洲在线成人| 国产精品黄视频| 一本色道久久综合狠狠躁篇的优点| 亚洲激情电影中文字幕| 美腿丝袜亚洲色图| 欧美高清在线播放| 亚洲国产精品一区二区第一页| 香蕉av福利精品导航| 羞羞答答国产精品www一本| 国产精品日韩久久久久| 亚洲欧美成人在线| 久久精品视频99| 国产一区视频在线看| 欧美综合国产| 欧美成人精品在线播放| 亚洲黄色影院| 欧美精品123区| 99视频精品免费观看| 亚洲欧美国产高清va在线播| 国产精品试看| 久久高清免费观看| 欧美大片一区二区| av成人免费在线| 国产精品美女www爽爽爽视频| 亚洲欧美精品在线| 免费成人黄色片| 一区二区三区三区在线| 国产精品入口福利| 久久精品国产99精品国产亚洲性色| 欧美 日韩 国产精品免费观看| 亚洲精品在线视频| 国产精品成人一区| 久久精品国产视频| 亚洲人成网在线播放| 午夜亚洲激情| 在线观看福利一区| 欧美日韩国产综合视频在线| 亚洲在线一区二区三区| 欧美va亚洲va日韩∨a综合色| av不卡在线观看| 国产亚洲成精品久久| 欧美激情精品久久久六区热门 | 久久激情综合| 亚洲精品久久嫩草网站秘色 | 国产日韩亚洲欧美综合| 欧美gay视频激情| 亚洲一区二区三区涩| 免费欧美在线视频| 欧美一级二级三级蜜桃| 亚洲精品美女在线| 国产亚洲一区在线播放| 欧美日本亚洲| 久久亚洲国产精品日日av夜夜| 国产精品午夜春色av| 国产精品久久久久久亚洲调教 | 欧美精彩视频一区二区三区| 亚洲亚洲精品三区日韩精品在线视频| 久久综合九色九九| 欧美一区二粉嫩精品国产一线天| 亚洲国产小视频| 国产欧美一区二区三区国产幕精品| 欧美成人免费视频| 久久国产精品第一页| 在线视频你懂得一区| 亚洲高清久久网| 蜜桃av综合| 久久精品日产第一区二区三区| 在线性视频日韩欧美| 91久久久亚洲精品| 亚洲第一黄色网| 国内久久视频| 国模精品一区二区三区|