简洁实用的标记语言
语言结构
- 严格区分大小写
- 缩进区分作用域
- 可以通过锚点和引用来当做变量
- 数据结构简单
目前有很多的配置文件采取这种格式
数据机构分类:
对象:
这里的对象和json中的差不多的意思, 就是键值对1
2
3
4
5
6
7
8obj1: obj
obj2:
key1: v1
key2: v2
obj3: obj2
# 单行表示:
obj2: {name: 'asfasf', foo: bar}
数组:
通过-
来标记数组1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16- a1
- a2
- a3
# 单行
[a1, a2, a3]
# 二维数组
-
- a1
- a2
- a3
# 单行
[[a1, a2, a3]]
{array: [a1, a2, a4]}
纯量
不能在分割的量, 如数字, 字符串.etc
1 | a: 'asfaf' |
使用两个感叹号!!
作为强制转换类型
字符串
涉及字符串中的转义的变换
1 | # 可以直接写, 对于没有什么特殊要求的字符串 |
使用锚点&
可以将当行当做一个变量使用, 即在其他地方引用到这个变量名的, 会调用这行的定义
1 | defaults: |
还有这样的, &变量名
, *引用
,1
2
3
4
5- Steve
- Clark
- Brian
- Oren
-
使用js-yaml
库可以将yaml和js相转换