YAML 學習筆記

yaml

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

目的

因個人博客通過jekyll搭建,后發(fā)現_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#/.net、java、pthon、ruby、javascript等等。
  • YAML 運作主要依賴大綱式的縮進來決定結構,這有效解決了界定符沖突(Delimiter collision)的問題
  • YAML 數據形態(tài)不依賴引號之特點,使的YAML文件可以利用區(qū)塊,輕易的插入各種其他類型文件,如:XML、SDL、JSON,甚至插入另一篇YAML。
  • YAML 注解由井字號( # )開始,可以出現在一行中的任何位置,你json注釋一個給我看看?(有了新歡,emmm...??)

什么時候用yaml?

商城的發(fā)票日志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
---

參考

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容