本篇要解決的問題
最近想學一些東西,或是之前在看一些教學時,發現都會要寫 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
Article Name
YAML 基本使用筆記
Description
本篇大綱:本篇要解決的問題。YAML 重點觀念。註解。Key-Value Pairs。Objects。Array Lists。Multi Line Strings、Environment Variables、Placeholder。
Augustus
August
Let's Write
Let's Write
https://letswrite.tw/wp-content/uploads/2020/08/logo_512.jpg