YAML 学习笔记

作者: Boom妒忌噶 | 来源:发表于2018-05-30 23:15 被阅读0次
    yaml

    原文地址:https://zhangjinbo619.github.io/note/2018/05/30/yaml.html

    目的

    因个人博客通过jekyll搭建,后发现_config.yml里面的语法比较神奇,可读性极高。所以查了相关资料,想具体了解下该标记语言的特性和应用场景。

    什么是yaml?

    YAML ="YAML Ain't Markup Language"

    • 官方网站的解释:YAML ="YAML Ain't Markup Language"(缩写为YAML)。这是一种数据序列化(serialization )语言,是一种可读的文本的数据结构,它的设计目标是使人们容易读,程序容易处理。它类似XML,但是比XML简单。

    • 维基百科解释:为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名。

    • 个人理解:可读性极高的标记语言。

    为什么要用yaml?

    • YAML 的数据组织主要依靠的是空白,缩进,分行等结构,可读性好。
    • YAML 实现简单,解析成本很低,和脚本语言的交互性好。
    • YAML 可读性是在太强了,看的就爽。虽然它也支持json array的写法,但是不建议这样用,那样个人感觉就失去了魅力。
    • YAML 解析支持各种主流语言:C/C++/C#/.netjavapthonrubyjavascript等等。
    • YAML 运作主要依赖大纲式的缩进来决定结构,这有效解决了界定符冲突(Delimiter collision)的问题
    • YAML 数据形态不依赖引号之特点,使的YAML文件可以利用区块,轻易的插入各种其他类型文件,如:XML、SDL、JSON,甚至插入另一篇YAML。
    • YAML 注解由井字号( # )开始,可以出现在一行中的任何位置,你json注释一个给我看看?(有了新欢,emmm...😆)

    什么时候用yaml?

    商城的发票日志demo

    --- !<tag:clarkevans.com,2002:invoice>
    invoice: 34843
    date   : 2001-01-23
    bill-to: &id001
        given  : Chris
        family : Dumars
        address:
            lines: |
                458 Walkman Dr.
                Suite #292
            city    : Royal Oak
            state   : MI
            postal  : 48046
    ship-to: *id001
    product:
        - sku         : BL394D
          quantity    : 4
          description : Basketball
          price       : 450.00
        - sku         : BL4438H
          quantity    : 1
          description : Super Hoop
          price       : 2392.00
    tax  : 251.42
    total: 4443.52
    comments:
        Late afternoon is best.
        Backup contact is Nancy
        Billsmer @ 338-4338.
    
    

    错误日志demo

      ---
      Time: 2001-11-23 15:01:42 -5
      User: ed
      Warning:
        This is an error message
        for the log file
      ---
      Time: 2001-11-23 15:02:31 -5
      User: ed
      Warning:
        A slightly different error
        message.
      ---
      Date: 2001-11-23 15:03:17 -5
      User: ed
      Fatal:
        Unknown variable "bar"
      Stack:
        - file: TopClass.py
          line: 23
          code: |
            x = MoreObject("345\n")
        - file: MoreClass.py
          line: 58
          code: |-
            foo = bar
    

    配置项demo

    --- #这个例子就是该文章yaml配置,是不是一目了然、通俗易懂 ^_^
    layout: blog
    tech: true
    title: "yaml 学习笔记"
    background-image: "http://zhangjinbo619-github.oss-cn-hangzhou.aliyuncs.com/zhangjinbo619.github.io/yaml-logo.png"
    date: "2018-05-30"
    category: note #book,game,note,chat,code,image,web,link,design,lock
    tags:
    - yaml
    ---
    

    参考

    相关文章

      网友评论

        本文标题:YAML 学习笔记

        本文链接:https://www.haomeiwen.com/subject/knhfsftx.html