YAML / TOML / ENV Config

YAML整形コメントを残して設定を読み直す

インデントと出力文書を選び、構造や参照先を確認できます。

YAML整形

YAML入力

整形結果

入力内容はこのブラウザ内で処理され、送信されません。

整形オプション

結果が古いため、エクスポートできません。

YAML整形が役立つのは、設定をコピーしたあとに親子関係が読みづらくなったときです。たとえばComposeのサービス設定では、コメントを残したまま階層を確認できると、値を変えたのか見た目だけを整えたのか判断しやすくなります。

このYAMLフォーマッターは入力を残し、右側に別の結果を作ります。JSONを経由してデータだけを書き戻す方法とは異なり、設定の説明や参照名を含めて見直せます。複数文書の一部を使う場合も、出力対象を明示して選びます。

YAML整形で残しておきたい情報

説明と数値を読み比べる

コメント、アンカー、数値の元のトークンを文書モデル上で保持します。空白やスカラーの表示形式は変わることがあるため、元の入力と結果を別々に確認できます。長い小数を先に浮動小数点数へ丸めてから出力することも避けます。

整ったインデントの行にも、コメントを示す色と同じ数値列が残っている図。

文書を選ぶ前に全体を検証する

YAML整形は区切られたすべての文書を検証してから結果を返します。1文書を選択しても別の文書のエラーは無視されません。全体を出力するか、必要なリソースだけを取り出すかを選べます。

区切られた2文書から1文書を出力し、参照がそれぞれの文書内に収まる図。

出力範囲と更新状態を確認する

01

最初は全体が選ばれている

サンプルには複数文書が入っており、初期状態ではすべて出力します。番号を選ぶと、その文書だけが対象になります。入力は消えないので、後から全体へ戻せます。サンプルとクリアは先に置き換える行数を表示します。適用で確定し、元に戻すと直前の入力と結果を復元できます。

02

自動整形の実行タイミングを変える

編集が止まってから350ミリ秒後に更新します。スイッチを切ると実行ボタンが現れ、Ctrl/Cmd+Enterも使えます。入力やオプションが変わると、再処理が終わるまで古い結果のエクスポートは無効です。

03

構造表示と保存内容を区別する

構造・アンカー表示の行番号は整形後ではなく入力原文の位置です。この表示を開いたままでも、コピーとダウンロードは選択範囲のYAMLを出力します。

階層と参照を追うための機能

選べる2段階のインデント幅

YAMLインデントを2スペースまたは4スペースにそろえます。マッピングとシーケンスの順序は保ち、元の入力を書き換えません。ブロックスカラー内の文章やスクリプトは値として扱い、実行やテンプレート展開は行いません。

文書全体の重複キー検出

YAML構文チェックでは、選択外の文書も含めて解析します。スカラーキーはCoreでの意味に基づいて比較するため、数値の表記が違っても同じキーを表す場合は重複になります。後の値で黙って上書きせず、入力位置を示して停止します。

数値表記を途中で丸めない

長い整数、小数、指数表記を元のトークンから書き戻します。YAMLで表せる非有限数もJSONのnullには置き換えません。ただし、出力先のアプリケーションが同じ精度で読み取る保証はないため、識別子を文字列にしたい場合は引用符を付けてください。

エイリアスを展開しない閲覧

マッピング、シーケンス、スカラーの種類と入力行を確認できます。参照表示にはアンカー名とエイリアスの対象行が並び、50件ずつ追加表示します。自己参照を見ても同じ値を再帰的にコピーしないため、参照そのものを追えます。

文法の範囲と処理上限

1.2 Coreに固定
引用符のないyes、no、on、offは文字列です。別バージョンの指定や非対応タグはエラーにします。キーに使えるのは文字列、数値、真偽値、nullのスカラーであり、コレクションやエイリアスをキーにはできません。
参照の範囲は1文書
エイリアスは名前を保った参照として出力し、値へ展開しません。自己参照は保持できますが、未定義のアンカーや別文書への参照は拒否します。<<はCoreの通常キーとして扱い、マージ処理は行いません。
不正な階層を推測しない
どの文書であっても構文エラーや重複キーがあれば出力しません。インデントの自動修復、キーの並べ替え、圧縮、形式変換、KubernetesやCIのスキーマ検証は行いません。見た目を整えるため、元ファイルの全バイトが一致する処理ではありません。
超過時は部分出力しない
入力は500000文字、100文書、深さ100、50000ノードまで、出力は2000000文字までです。いずれかを超えるとエラーとなり、途中で切れたファイルはダウンロードしません。大きな設定は文書境界を確かめて手元で分割してください。

YAML整形のよくある質問

整形したあともコメントは残りますか?

はい。コメントを文書モデルに残して出力するため、設定の説明を読み比べられます。YAML整形は元の入力を上書きしません。ただし空白などの表示は変わるため、同じ位置の全バイトを保存する処理ではありません。

タブでインデントするとエラーになりますか?

インデントにタブがあると通常は構文エラーになります。タブを何スペース分とみなすべきかは推測しません。意図した階層になるよう入力側を直してから実行してください。出力幅の切り替えだけでは、不正な入力を修復できません。

アンカーとエイリアスは使えますか?

使えます。アンカー名とエイリアスを保ち、対象行も表示します。同じ文書内で先に定義したアンカーを参照する必要があります。別文書への参照は無効で、値をコピーして埋める処理も行いません。

noが真偽値になるのはなぜですか?

YAMLのバージョンにより解釈が異なるためです。一部の1.1実装ではnoが真偽値になりますが、このツールは1.2 Coreで文字列として読みます。使うアプリ側の仕様も確認し、文字列を明示したい場合は引用符で囲んでください。

入力ファイルは外部に送られますか?

入力はブラウザ内のパーサーが処理します。文書の内容を送信するための操作はありません。参照の確認も同じ入力内で行われ、URLを取得したり外部設定を読み込んだりすることはありません。

処理が合わない設定がありましたか?

YAML整形に戻って確認する

YAML整形で選択中の文書と最新結果を確認し、利用先の検証へ進んでください。