YAML 基本使用筆記

/

本篇要解決的問題

最近想學一些東西,或是之前在看一些教學時,發現都會要寫 YAML 的檔案,像是 Docker、GitHub Actions,與其一邊看一邊猜是什麼,或是需要的時候才快速看一下網路教學,不如好好的看過一次說明文件,然後整理成筆記,方便以後忘記時可以回頭來查找。

本篇主要是看了 Youtube 上的教學影片後,整理覺得以後會常用到的部份。

本篇參考資源:

線上 YAML 轉 JSON:https://onlineyamltools.com/convert-yaml-to-json


YAML 重點觀念

W3Schools :

  • It is case sensitive(區分大小寫)
  • file extension is .yaml(副檔名是 .yaml)
  • Tabs are not allowed(不能用 Tab)
  • Some editors allow spaces(一些編輯器可以用空格)

副檔名除了用 .yaml,也可以用 .yml。

縮排的部份,同層的空格要空幾格都行,但要靠左對齊。


註解

# 符號代表註解。

# 以下是站長名字
name: August

Key-Value Pairs

name: August

轉成 JSON:

{ "name": "August" }

value 可加單引號、雙引號,也可不加。但如果有寫 \n,就要加上引號。


Objects

person:
  name: August
  website: Let's Write

轉成 JSON:

{
  "person": {
    "name": "August",
    "website": "Let's Write"
  }
}

Array Lists

- 符號代表陣列。

物件值為陣列

# 用 - 分每個值
social:
  - FB
  - IG
  - Twitter

# 也可以直接用 [] 包
social: [FB, IG, Twitter]

轉成 JSON:

{
  "social": [ "FB", "IG", "Twitter"]
}

陣列裡包物件

- name: FB
  uri: https://www.facebook.com/letswrite.tw/
- name: IG
  uri: https://www.instagram.com/letswrite.tw/

轉成 JSON:

[
  { "name": "FB", "uri": "https://www.facebook.com/letswrite.tw/" },
  { "name": "IG", "uri": "https://www.instagram.com/letswrite.tw/" }
]

物件裡包陣列

social:
  - name: FB
    uri: https://www.facebook.com/letswrite.tw/
  - name: IG
    uri: https://www.instagram.com/letswrite.tw/

轉成 JSON:

{
  "social": [
    { "name": "FB", "uri": "https://www.facebook.com/letswrite.tw/" },
    { "name": "IG", "uri": "https://www.instagram.com/letswrite.tw/" }
  ]
}

陣列裡包陣列

例 1

- social:
  - FB: https://www.facebook.com/letswrite.tw/
  - IG: https://www.instagram.com/letswrite.tw/

轉成 JSON:

[
  {
    "social": [
      { "FB": "https://www.facebook.com/letswrite.tw/" },
      { "IG": "https://www.instagram.com/letswrite.tw/" }
    ]
  }
]

例 2

pserson:
  - name: August
    website: Let's Write
    social:
      - name: FB
        uri: https://www.facebook.com/letswrite.tw/
      - name: IG
        uri: https://www.instagram.com/letswrite.tw/

轉成 JSON:

{
  "pserson": [
    {
      "name": "August",
      "website": "Let's Write",
      "social": [
        { "name": "FB", "uri": "https://www.facebook.com/letswrite.tw/" },
        { "name": "IG", "uri": "https://www.instagram.com/letswrite.tw/" }
      ]
    }
  ]
}

Multi Line Strings

|> 這二個符號表示後面會接多行文字,差別在於會不會保留折行。

letsWrite1: |
  前端工程師 August
  的學習筆記
  solving problems,
  in simple ways.

letsWrite2: >
  前端工程師 August
  的學習筆記
  solving problems,
  in simple ways.

轉成 JSON:

{
  "letsWrite1": "前端工程師 August\n的學習筆記\nsolving problems,\nin simple ways.\n",
  "letsWrite2": "前端工程師 August 的學習筆記 solving problems, in simple ways.\n"
}

Environment Variables、Placeholder

$ 代表使用 environment 的變數。

{{ }} 代表使用佔位符。

在看 GitHub Actions 的快速入門範例中,有寫到:

The ${{ github.repository }} repository has been cloned to the runner.

August 理解為這二項可以合併著使用,抓 environment 裡的變數當最後會輸出的值。

Summary
YAML 基本使用筆記
Article Name
YAML 基本使用筆記
Description
本篇大綱:本篇要解決的問題。YAML 重點觀念。註解。Key-Value Pairs。Objects。Array Lists。Multi Line Strings、Environment Variables、Placeholder。
Augustus
Let's Write
Let's Write
https://letswrite.tw/wp-content/uploads/2020/08/logo_512.jpg
訂閱
通知
guest

0 Comments
Inline Feedbacks
看所有留言

Let's Write

前端工程師 August 的學習筆記 — solving problems, in simple ways.

Follow us Telegram GitHub