YAML フォーマッター・バリデーター
このツールでできること
YAML には波かっこがありません。構造を担うのはインデントです。読みやすい反面、壊れやすい — 空白ひとつで、キーが別の親の下に入ってしまいます。このツールは文書のインデントを一定の幅にそろえ、どこが壊れているかを示し、実際にどう読まれているかを見せます。
使い方
- 1 YAML をボックスに貼り付け、インデント幅を選びます。一般的には半角スペース 2 つです。
- 2 「整形」でインデントを整え、「検証」なら 1 文字も変えずにチェックします。
- 3 値が意図どおりに読まれているか不安なときは、「JSON に変換」で確かめてください。
タブはインデントではありません
YAML 仕様はインデントでのタブ文字を禁じており、多くのパーサーはファイルごと拒否します。表示されるエラーが役に立つことは少なく、指し示す行は本当の問題の次の行であることがよくあります。このツールはタブのある行そのものを示します。
コメントは消えません
多くのフォーマッターは文書を木構造に解析し、もう一度出力します。きれいに整いますが、書いたコメントはすべて消えます — docker-compose や CI パイプラインでは使い物になりません。このツールは先頭の空白だけを書き換えるので、コメント・キーの順序・引用符の流儀はそのまま残ります。
なぜ NO が false になるのか
YAML 1.1 では、引用符なしの yes, no, on, off は真偽値でした。ノルウェーのコード NO を含む国リストが false として読み込まれたのはこのためで、名前がつくほど有名なバグです。YAML 1.2 はこの規則を廃止し、本ツールも 1.2 に従います。キーワードは true, false, null だけです。真偽値が欲しければ true か false と書き、文字列が欲しければそのままで構いません。
アンカー・エイリアス・ブロックスカラー
アンカー(&名前)はノードに印をつけ、エイリアス(*名前)が後で再利用できるようにします — 繰り返すサービス定義に便利です。ブロックスカラー(| と >)は複数行のテキストを運びます。縦棒は改行をそのまま保ち、不等号は改行を空白に畳みます。三つとも本ツールで解釈され、ブロックスカラー内部のインデントは書式ではなくデータとして扱われます。