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

. 表示层级

块可以用 . 表示层级。


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

查看所有标签

猜你喜欢:

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

从算法到程序

从算法到程序

徐子珊 / 2013-3 / 59.00元

《从算法到程序:从应用问题编程实践全面体验算法理论》第1章讨论算法设计、分析的基本概念,第2章讨论算法设计中最常用的几个数据结构,包括链表、栈、队列、二叉搜索数、散列表等。第3章讨论了算法设计的两个基本策略:渐增策略与分支策略。这3章的内容,为读者阅读本书以后的内容奠定了基础。第4章讨论了几个代数计算的基本问题及其算法,包括矩阵运算、解线性方程组、多项式运算等。第5章讨论了几个关于计算几何的基本问......一起来看看 《从算法到程序》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具