本篇要解決的問題
最近想學一些東西,或是之前在看一些教學時,發現都會要寫 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。
August
August
Let's Write
Let's Write
https://letswritetw.github.io/letswritetw/dist/img/logo_512.png

