YAML 檢視器

格式化、校驗並檢視 YAML 文件,支援鍵排序與錨點/別名展開控制。

格式化、校驗並檢視 YAML 文件,支援鍵排序與錨點/別名展開控制。 格式化、校驗並檢視 YAML 文件,支援鍵排序與錨點/別名展開控制。

Array

        
    

背景知識

YAML 是什麼,為什麼要用檢視器

YAML("YAML Ain't Markup Language")是一種對人類友好的資料序列化格式,廣泛用於配置檔案(docker-compose.yml、Kubernetes 清單、GitHub Actions 工作流、Ansible playbook 等)。它用縮排表達結構、引入日期/多行字串/引用等更豐富的型別系統,換取了 JSON 的嚴格性。

YAML 依靠縮排表達巢狀,一個空格缺失就可能改變整篇文件的含義,而大多數編輯器不會高亮層級。檢視器解析文件後用統一縮排重新輸出,既展現結構,又暴露縮排錯誤。

關鍵特性

大多數檢視器允許切換若干行為:按鍵名字典序排序以便穩定 diff,展開或剝離 YAML 錨點與別名(& / * 語法),選擇縮排寬度。排序選項在比較同一配置的兩份快照時尤其有價值——沒有它,釋出之間的鍵重排會掩蓋真實變更。

位元組數和頂層鍵統計幫助你一眼看清文件有多重、重量在哪裡。如果你要確認 YAML 是否塞得進環境變數上限或 Kubernetes ConfigMap 容量,那數字就在那裡。

工作流建議

除錯解析錯誤時,把文件複製到新的檢視器標籤,逐個切換選項:&anchor 語法可能要展開後才看出是不是手誤。超長流水線用 4 空格縮排以匹配常見風格指南;內聯審閱或聊天貼上用 2 空格更緊湊。提交配置時始終保留原文件結構——檢視器是用來檢查的,不是用來標準化的。

使用 MIT 協議的 js-yaml 庫(已內置於 public/assets 中)。輸入內容在本地解析,絕不上傳。

常見問題

為什麼 YAML 看起來像多此一舉的 JSON?
JSON 是 YAML 1.2 的嚴格子集:每個 JSON 文件都是合法的 YAML 文件。YAML 在此基礎上增加了註釋、多行字串、引用和更豐富的型別系統。
錨點 (&) 和別名 (*) 的區別是什麼?
錨點(&name value)用一個名字標記某個值;別名(*name)在其它位置複用該值。檢視器可以把別名內聯展開(*name 變為原值)或剝離,這在提交前規範化輸出時很有用。
檢視器重新輸出時會保留註釋嗎?
不會。大多數 YAML 庫(包括 js-yaml)在 load/dump 來回中會剝離註釋,因為 YAML 的資料模型不包含註釋。如果註釋重要,請直接編輯原檔案。
為什麼檢視器說找不到 tab 字元?
YAML 不允許用 tab 縮排,只能用空格。即使在塊字串裡出現一個 tab 也會讓某些解析器困惑。請把 tab 替換為空格後重試。
檢視器會合並多文件 YAML 檔案嗎?
它對每個文件單獨解析和重新輸出,但當前檢視器一次只輸出一個文件。多文件請使用專用編輯器。
我的 YAML 會上傳嗎?
不會。解析和重新格式化都在本地通過內建的 js-yaml 庫完成,不會離開瀏覽器。