Yaml
yaml ain’t markup language
配置Sakura主题的时候用到了yaml 当时看着语法还挺清晰 依样画葫芦也能写出来 就直接上手了 写blog的时候倒是经常因为冒号后面没加空格之类的error而报错 现在来总结下:
参考链接
基本语法规则:
- 大小写敏感 
- 使用缩进表示层级关系 
- 缩进不允许使用tab,只允许空格 
- 缩进的空格数不重要,只要相同层级的元素左对齐即可 
- ‘#’表示注释 
这方面个人感觉 除了不允许tab外 和py的类似之处很多
数据类型
- 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
- 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
- 纯量(scalars):单个的、不可再分的值
类似于py的dict/list/常量
对象
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 
 | key:{key1: value1, key2: value2, ...} 
 
 key:
 child-key: value
 child-key2: value2
 
 ?
 - complexkey1
 - complexkey2
 :
 - complexvalue1
 - complexvalue2
 
 
 | 
数组
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 
 | - A- B
 - C
 
 -
 - A
 - B
 - C
 
 key: [v1,v2,..]
 
 | 
综合展示:
- ```yaml
 companies:
 -
 id: 1
 name: company1
 price: 200W
 -
 id: 2
 name: company2
 price: 500W| 12
 3
 4
 5
 
 | - ```yaml
 
 companies: [{id: 1,name: company1,price: 200W},{id: 2,name: company2,price: 500W}]
 
 
 |  
 
显然 二者可以混合使用
常量
上代码
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 
 | boolean: - TRUE
 - FALSE
 float:
 - 3.14
 - 6.8523015e+5
 int:
 - 123
 - 0b1010_0111_0100_1010_1110
 null:
 nodeName: 'node'
 parent: ~
 string:
 - 哈哈
 - 'Hello world'
 - newline
 newline2
 date:
 - 2018-02-17
 datetime:
 -  2018-02-17T15:02:31+08:00
 
 | 
变量引用
| 12
 3
 4
 5
 
 | default-db:port: 3306
 
 user-db:
 port: ${default-db.port}
 
 | 
可以用形如上述的方法进行变量引用(但是 反过来赋值是不行的!)
此外 可用**&和***进行引用和赋值:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 
 | defaults: &defaults adapter:  postgres
 host:     localhost
 
 development:
 database: myapp_development
 <<: *defaults
 
 test:
 database: myapp_test
 <<: *defaults
 
 - &showell Steve
 - Clark
 - Brian
 - Oren
 - *showell
 
 | 
相当于
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 
 | defaults:adapter:  postgres
 host:     localhost
 
 development:
 database: myapp_development
 adapter:  postgres
 host:     localhost
 
 test:
 database: myapp_test
 adapter:  postgres
 host:     localhost
 
 - &showell Steve
 - Clark
 - Brian
 - Oren
 - Steve
 
 | 
强制类型转换
用!!
| 12
 
 | e: !!str 123f: !!str true
 
 |