聊一聊TOML

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

内容简介:最近配置 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  # 三十亿

. 表示层级

块可以用 . 表示层级。


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

查看所有标签

猜你喜欢:

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

拆掉互联网那堵墙

拆掉互联网那堵墙

庄良基 / 经济日报出版社 / 2014-6 / 25.80

都在说道互联网、说道电子商务、说道移动APP、说道微信、说道互联网金融......我们该如何认识互联网?中小微企业该如何借力互联网?互联网很神秘吗?很高深莫测吗? 其实互联网并没有什么神秘的,也没有什么高深莫测的!互联网无非是人类发明的工具而已,既然是工具,我们就一定可以驾驭和使用它。既然可以双重使用,就理当让所有有人都容易掌握并轻松驾驭。 互联网离我们很远吗?互联网界的成功故事都是那......一起来看看 《拆掉互联网那堵墙》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器