聊一聊TOML

栏目: CoffeeScript · 发布时间: 7年前

内容简介:最近配置 Gitlab Runner,发现他的配置文件是TOML是那么问题来了,Tom是谁?搜索之后得到答案,

最近配置 Gitlab Runner,发现他的配置文件是 .toml 后缀。对 toml 类型一番了解之后,发现这是个非常值得使用的配置文件语言。

TOML的由来

TOML是 Tom's Obvious, Minimal Language. 的首字母缩写,是Tom的浅显的、极简的语言。

那么问题来了,Tom是谁?搜索之后得到答案, TomTom Preston-Werner ,全球最大的同性交友网站 Github 联合创始人。

还有小道消息,GitHub 新项目转用CoffeeScript 之后,CoffeeScript 比 JavaScript 要简洁优雅得多。同样地,GitHub 也觉得 YAML 不够简洁优雅,因此捣鼓出了一个 TOML。

TOML的目标

成为一个极简的配置文件格式。

关键词:极简、配置文件

TOML的语法足够简单,同时保证一个标准的TOML文件的所有配置项目都能被无歧义的转换成一个哈希表。TOML可以被各种语言解析使用。

TOML目前的版本还是 0.4.0 ,官网还是提示在 1.0 以前,语言表现可能还是不稳定。这个只是个免责条款,在很多生产系统里面,TOML配置文件已经大规模使用了,比如友商 GibLab

简单样例

https://github.com/toml-lang/toml# This is a TOML document.

title = "TOML Example"

[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00-08:00 https://github.com/toml-lang/toml# First class dates

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

[servers]

  https://github.com/toml-lang/toml# Indentation (tabs and/or spaces) is allowed but not required
  [servers.alpha]
  ip = "10.0.0.1"
  dc = "eqdc10"

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

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

https://github.com/toml-lang/toml# Line breaks are OK when inside arrays
hosts = [
  "alpha",
  "omega"
]

上面的样例就展示了很多TOML的特点。

#

还有一些特性,也列出来

  • TOML是大小写敏感的
  • TOML文件必须是UTF8编码的
  • 空白符可以是制表符(0x09)或空格(0x20)
  • 换行符可以是 LF (0x0A) 或 CRLF (0x0D0A)
  • 可以使用空字符串作为key 强烈不推荐这么用

看完样例,对TOML就能有基本的认识,参照文档就能快速写出合适的配置文件。

很棒的点

Offset Date-Time

TOML支持 RFC 3339 格式的时间,可以精准的描述一个地区时间。

多行字符串

str1 = """
Roses are red
Violets are blue"""

# On a Unix system, the above multi-line string will most likely be the same as:
str2 = "Roses are red\nViolets are blue"

# On a Windows system, it will most likely be equivalent to:
str3 = "Roses are red\r\nViolets are blue"

直接换行编写配置文件,在各个系统都能准确表达。

_ 分割z数字

数字,可以加入 _ 作为标记,不影响数值。每三位加一个,快速区分量级。玩EVE再也不用担心多付ISK了。

num1 = 1_000  # 一千
num2 = 2_000_000  # 两百万
num3 = 3_000_000_000  # 三十亿

. 表示层级

块可以用 . 表示层级。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

订阅

订阅

[美] 罗伯特·金奇尔、马尼·佩伊万 / 中信出版集团 / 2018-12 / 68.00元

数据显示,年轻人现在每天看视频的时间已经超过电视。YouTube 平台每天的视频观看总时长超过10亿小时,这个数字还在增长。数字视频牢牢占据着人们的注意力。 数字时代如何实现创意变现?视频平台如何提升自己的品牌认知和广告号召力?想要在这个庞大的媒体生态中占据流量入口,你需要先了解 YouTube。在过去的10年里,互联网视频平台 YouTube 已经像60多年前的电影、广播和电视的发明一样,......一起来看看 《订阅》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具