YAML/JSON/XML已经是配置文件标准化的主要选择,从容器化的docker-compose或者kubernetes到Springboot的开发配置文件设定,从Ansible的playbook到Helm的设定配置,YAML文件几乎无处不在,这篇文章将就YAML的基础知识和常见的使用技巧进行总结和整理。
仍是标记语言 vs 不是标记语言
YAML是YAML Ain’t Markup Language(YAML不是一种标记语言)的缩写,而在早期YAML的缩写则是Yet Another Markup Language(仍是另一种标记语言)。早期YAML的设计的目的之一是作为标记语言的另外一种结构,而后来则重新定位并将定义修改(2002/01/03),将YAML面向数据的作用进行突出,而不再是将中心放在标记语言上。
版本演进
项目 | 说明 |
---|---|
官网 | https://yaml.org/ |
2001/05/15 | 通过的第一个规范 |
2002/01/03 | 改名为YAML Ain’t Markup Language |
2004/01/29 | 第一版 :YAML 1.0最终草案 |
2005/01/18 | 第二版 :YAML 1.1最终草案 |
2009/10/01 | 第三版 :YAML 1.2修订版 |
规格详细说明
关于YAML各版本的详细信息,可参看下表的链接进行官方内容的确认
版本 | 详细信息 |
---|---|
YAML 1.0 | http://yaml.org/spec/1.0/ |
YAML 1.1 | http://yaml.org/spec/1.1/ |
YAML 1.2 | http://yaml.org/spec/1.2/spec.html |
基本语法和技巧
- 字符支持:YAML支持Unicode字符集,可以使用UTF-8、UTF-16、UTF-32字符集
- 缩进:YAML中缩进是非常重要的规范,不支持Tab,支持空格,没有严格要求空格个数,但是需要确保同一层次的个数一致
- 单行注释:单行注释使用#进行标记,可以在单行的任何位置开始注释的内容
- 多行注释:不提供特殊的多行注释,使用多行行首的单行注释#实现多行注释的需求
- 基本数据类型:支持整型、浮点型、时间戳类型、Null等基本数据类型
- 组合数据类型:支持键/值方式和列表类型,并可进行嵌套组合
- 键/值方式:使用冒号进行分隔,也可使用{}结合逗号进行表达
- 列表类型:使用横线-进行分隔,也可使用[]结合逗号进行表达
- 单引号与双引号:字符串类型可以不使用单引号和双引号,使用单引号和双引号与不使用的时候在特殊字符及其转义的时候有些细微的区别。
- 开始符号:—用于表示开始的符号,在一个文件中包含多个YAML设定的时候使用非常常见。
- 结束符号:…用于表示yaml文件结束
- 强制类型转换:可以使用!!用于强制类型转换
- 重复性内容:可以使用锚点标记&和应用标记*结合使用可以处理重复性的内容
- 保留字符:@和`为当前YAML规格的保留字符
- 较长的描绘性说明:使用|与>以及>-来处理常见的对于较长的描绘性说明的要求
- 空白字符限制:在使用逗号及冒号时,后须接一个空白字符
参考内容
https://zh.wikipedia.org/wiki/YAML
https://yaml.org/spec/1.2/spec.html
最后
以上就是悦耳超短裙最近收集整理的关于YAML实践指南:1:基础知识仍是标记语言 vs 不是标记语言版本演进规格详细说明基本语法和技巧参考内容的全部内容,更多相关YAML实践指南:1:基础知识仍是标记语言内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复