聊一聊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  # 三十亿

. 表示层级

块可以用 . 表示层级。


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

查看所有标签

猜你喜欢:

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

计算机与人脑

计算机与人脑

[美] 约·冯·诺意曼 / 甘子玉 / 商务印书馆 / 1965-3 / 7.00元

《计算机与人脑》是自动机(以电子计算机为代表)理论研究中的重要材料之一。原书是冯·诺意曼在1955-1956年准备讲演用的未完成稿。著者从数学的角度,主要是从逻辑和统计数学的角度,探讨计算机的运算和人脑思维的过程,进行了一些比较研究。书中的许多技术推论带有预测性,尚待今后实验研究及进一步探讨才能判断其是否正确。一起来看看 《计算机与人脑》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具

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

HSV CMYK互换工具