YAML フォーマッター
シンタックスハイライトとエラー検出機能付きでYAMLドキュメントのフォーマット、バリデーション、変換を行います
YAML 入力
フォーマット結果
インスペクター
詳細設定
別の YAML と比較
このドキュメントを Data Diff に送り、2 つ目のバージョンを貼り付ければ、変更箇所を確認できます。
正確なエラー位置を示すバリデーション
js-yaml 1.2 パーサーを使用して、キー入力のたびにバリデーションを実行します。有効なドキュメントでは、ドキュメント数、マッピング数、シーケンス数、キー数、深さをリアルタイムでカウント表示します。壊れたドキュメントでは、正確な行と列、考えられる原因、エラー位置のハイライトを報告します — 単なる「syntax error」ではありません。
このツールが特定できる一般的な YAML エラー
これらのミスが無効な YAML の大部分を占めています。それぞれ位置と考えられる原因付きで検出されます:
インデントの誤り
親より浅くインデントされた子行、または揃っていない兄弟行。通常は「bad indentation of a mapping entry」として正確な行で報告されます。
TAB 文字
YAML ではインデントにタブを使用できません。パーサーは「found a tab character that violates indentation」と報告し、問題の行をハイライトします。
重複キー
同じキーが 1 つのマッピング内に 2 回出現。js-yaml は 2 回目の出現行とともに「duplicated mapping key」を報告します。
コロンの欠落またはスペースの欠落
値のないキー(「key key2」)や、キーにくっついたコロン(「key:value」はペアではなくプレーンな文字列)。「could not find expected ':'」として報告されます。
整形前 / 整形後
左側は最小化された Kubernetes マニフェスト、右側は同じドキュメントを 2 スペースインデントで整形したもの。構造、ツリー、パスは解析されたドキュメントから更新されます。
{apiVersion: apps/v1, kind: Deployment, metadata: {name: web-app}, spec: {replicas: 3, template: {metadata: {labels: {app: web}}}}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
spec:
replicas: 3
template:
metadata:
labels:
app: web
YAML クイックリファレンス(YAML 1.2)
- インデントが構造を決めます: スペースのみ使用可能 — TAB 文字はインデントに一切使用できません。
- キーのセパレーターとして機能するには、コロンの後にスペースが必要です: 「key: value」であり「key:value」ではありません。
- スカラーはコアスキーマによって型に解決されます: true/false(ブール値)、整数、浮動小数点数、null(~/null/空)。「yes」/「no」は 1.2 ではプレーンな文字列になる点に注意してください。
- 1 つのファイル内の複数ドキュメントは「---」行で区切り、「...」でドキュメントを終了します。
- アンカー(&base)とエイリアス(*base)でファイルを DRY に保てます。マージキー(「<<: *base」)でマッピングを継承します。
このデータの次のステップ
整形は最初のステップです。ブラウザーを離れずにワークフローを続けられます:
よくある質問
Yaml Formatter フォーマットに関するよくある質問
このフォーマッターは YAML 1.2 仕様に準拠しており、Kubernetes、Docker Compose、GitHub Actions などのモダンなツールやクラウドネイティブプラットフォームとの互換性を確保しています。
はい。双方向変換機能により、データ型やネストされた構造、そして対応可能な範囲でコメントを保持したまま、YAMLからJSON、JSONからYAMLへ変換できます。
もちろんです。このフォーマッターは、Kubernetesマニフェスト、Docker Composeファイル、CI/CDパイプライン、その他のマルチドキュメントYAMLファイルを、適切なセクション分離を保ちながら処理できるよう設計されています。
バリデーターはインデントの一貫性、コロンとダッシュの適切な使用、引用符付き文字列の対応関係、アンカーとエイリアスの参照をチェックし、迅速なデバッグに役立つ行番号付きのエラーメッセージを提供します。
はい。フォーマッターはYAMLのアンカー(&)、エイリアス(*)、マージキー(<<)を正しく処理し、周囲の構造を整形しながらこれらのDRY機能を保持します。
YAML 1.2です。これはyaml.orgの現行仕様であり、Kubernetes、docker-compose、GitHub Actionsのドキュメントが対象とするバージョンです。YAML 1.2ではJSONが正式なサブセットとなり、真偽値のパースも厳密になりました。フォーマッターは、1.1パーサー(PythonのPyYAMLでは今も一般的)が "no" や "0777" のような値を誤読する可能性がある箇所では、引用符を明示的に保持します。
YAMLのアンカー、エイリアス、ブロックスカラーに付けられたコメントはそのまま維持されますが、再インデントされたキーに付属するコメントは、そのインデントレベルに合わせて移動します。フォーマッターがコメントを削除することは決してなく、コメントが説明対象のノードに付属し続けるよう、必要最小限の移動のみを行います。
検出して対処します。フォーマット時に NO、no、ON、on、yes、n といった裸の値は自動的に引用符で囲まれるため、YAML 1.1パーサーがこれらを真偽値として解釈することはありません。国コードのリスト [NO, SE, DK] は3つの文字列のまま維持されます。YAML 1.2では true/false のみが真偽値として扱われますが、両バージョンで安全なのは引用符で囲まれた出力だけです。
権威ある参考文献
このツールが扱うフォーマットを定義する標準仕様と公式ドキュメントです。