YAML ビューア

YAML ドキュメントを整形・検証し、キーの並べ替えやアンカー/エイリアス展開の制御が可能です。

YAML ドキュメントを整形・検証し、キーの並べ替えやアンカー/エイリアス展開の制御が可能です。 YAML ドキュメントを整形・検証し、キーの並べ替えやアンカー/エイリアス展開の制御が可能です。

Array

        
    

背景

YAML とは何か、ビューアがなぜ便利か

YAML("YAML Ain't Markup Language")は人間に 친화的なデータシリアライズ形式で、設定ファイル(docker-compose.yml、Kubernetes マニフェスト、GitHub Actions ワークフロー、Ansible playbook など)で広く使われています。JSON の厳格さをインデントベースの構造と、日付・複数行文字列・参照を含むより豊富な型システムと引き換えにしています。

YAML はネスト表現をインデントに依存するため、スペースが 1 つ欠けただけでドキュメント全体の意味が変わる可能性がありますが、多くのエディタは階層を視覚的に強調表示しません。ビューアはドキュメントを解析し一定のインデントで再出力することで、インデントミスを露わにしつつ構造を明らかにします。

知っておきたい機能

ほとんどのビューアは、アルファベット順キーソート(差分を安定させる)、YAML のアンカー/エイリアス(& / * 構文)の展開または除去、インデント幅の選択といった動作を切り替えられます。ソート機能は同じ設定の 2 つのスナップショットを比較するときに特に価値があります。これがないと、リリース間でのキー並び替えが本当の変更を覆い隠してしまいます。

バイト数とトップレベルキー数の統計は、ドキュメントの重さと重みがどこにあるかを示します。YAML が環境変数の上限や Kubernetes ConfigMap のサイズ上限に収まるか知りたいとき、その数字がそこにあります。

使いこなしのヒント

解析エラーをデバッグするときは、ドキュメントを新しいビューアタブにコピーし、オプションを一つずつ切り替えてください。&anchor 構文は、展開してみるまで単なるタイプミスに見えることがあります。非常に長いパイプラインには 4 スペースインデント(一般的なスタイルガイドに合致)を、インラインレビューやチャット貼り付けには 2 スペース(よりコンパクト)を使います。設定をコミットするときは常に元のドキュメント構造を保ってください。ビューアは検査のためのもので、正規化のためのものではありません。

MIT ライセンスの js-yaml ライブラリを public/assets に同梱して使用しています。入力はローカルで解析され、アップロードされることはありません。

よくある質問

なぜ YAML は一手間余計な JSON のように見えるのですか?
JSON は YAML 1.2 の厳格なサブセットで、すべての JSON ドキュメントは有効な YAML ドキュメントです。YAML はその上にコメント、複数行文字列、参照、そしてより豊富な型システムを追加しています。
アンカー (&) とエイリアス (*) の違いは何ですか?
アンカー(`&name value`)は値に名前を付け、エイリアス(`*name`)はその値を別箇所で再利用します。ビューアはエイリアスをインライン展開(`*name` を元の値に置き換え)したり除去したりでき、コミット前の出力正規化に便利です。
ビューアは再出力時にコメントを保持しますか?
いいえ。js-yaml を含むほとんどの YAML ライブラリは、YAML のデータモデルにコメントが含まれないため、load/dump のラウンドトリップでコメントを除去します。コメントが重要な場合は元のファイルを直接編集してください。
ビューアがタブ文字を見つけられないと言うのはなぜですか?
YAML はインデントにタブを許可せず、スペースのみを使います。ブロックスカラ内のタブ 1 つでも一部のパーサを混乱させることがあります。タブをスペースに置換して再試行してください。
ビューアは複数ドキュメント YAML を結合しますか?
各ドキュメントを個別に解析・再出力しますが、現在のビューアは 1 回に 1 ドキュメントのみを出力します。複数ドキュメントの場合は専用エディタを使ってください。
YAML はアップロードされますか?
いいえ。解析と再整形は同梱の js-yaml ライブラリによりローカルで行われ、ブラウザの外には送信されません。