YAMLフォーマッター・検証
YAML Formatter & Validator
YAMLのインデントを揃えて検証し、パーサを壊すタブやアンカーの誤りに印を付けます。
YAMLファイルのインデントを一貫した形に直し、別のパーサなら違う読み方をする場所を教えます。コメント・アンカー・タグ・ブロックスカラーを保つYAML 1.2のリーダーなので、出力は体裁だけを直した元の文書です。コメントを捨ててしまうデータモデルを往復することはありません。
YAML入力
.yaml ファイルを置く
このタブの中だけで読みます。アップロードはしません。
整形されたYAML
整形しました。
読めてはいますが、パーサによって解釈が分かれるところ
- 19:22 — `no` はYAML 1.2では文字列 "no" です。YAML 1.1のパーサはこれを真偽値として読みます。両者を一致させるには、引用符で囲むか true/false と書いてください。
文書
1
キー
30
リスト項目
8
アンカー / エイリアス
1 / 1
警告
1
この整形ツールがすること、しないこと
- · YAML 1.2のコアスキーマで読みます。
yes・no・on・offは文字列で、0755は8進数ではなく10進数の755です。1.1のパーサなら別に読む値は、上に警告として挙げます。 - · コメント、アンカー(
&)、エイリアス(*)、タグ、そして|・>のブロックスカラーはすべて保ちます。値の順序も変えません。 - · タブによるインデント、キーの重複、定義前に使われたエイリアス、閉じていない引用符は、いずれも行と列を付けてエラーとして捕まえます。
- · マージキー
<<はYAML 1.1の機能ですが、docker-composeやAnsibleのファイルであまりに広く使われているため、JSONへの変換時には適用したうえで、そう警告します。 - ·
[a, b]のようなフローコレクションの中のコメントは、付く行がないので失われます。それ以外のコメントはすべて残ります。
JSONやTOMLに変換するなら JSON ⇄ YAML変換を、スキーマと突き合わせるなら JSON Schema検証をどうぞ。
使い方
マニフェストか設定を貼り付けます
Kubernetesのマニフェスト、CIの設定、docker-composeなどです。`---`で区切られた複数の文書はストリームとして読み、別々に数えます。
一覧の書き方を選びます
実際に議論になる唯一の設定です。`- 項目`をキーと同じ桁に置くか、1段下げるかです。どちらも正しいYAMLで、Kubernetesのマニフェストは慣例として同じ桁に置きます。
警告を読みます
読む側がどのYAMLのバージョンを実装しているかで意味の変わる値——`yes`、`no`、`0755`——を、行と列とともに並べます。別のツールに持っていったときにデプロイを壊すのは、これらです。
あるいは出力をJSONに切り替えます
同じパース結果をJSONとして表示します。ある値が実際に何として解決されたのか——マージキーが何に展開されたのかまで——をいちばん早く確かめる方法です。
よくある質問
ここで`no`が文字列になるのはなぜですか
YAML 1.2のコアスキーマがそう定めているからです。真偽値は`true`と`false`だけです。PyYAMLがいまも既定にしているYAML 1.1は、`no`、`off`、`n`を偽として読みます。2つの解釈が食い違う値には警告の印を付けます。体裁の話ではなく、実際の動作の違いだからです。
アンカーとエイリアスは残りますか
YAMLの出力では残ります。`&res`と`*res`は書いたとおりに出て、その数も統計に表示されます。JSONの表示では展開せざるをえません。JSONには「同じノードをもう一度」と言う方法がないからです。
マージキーには対応していますか
`<<:`はYAML 1.1の機能で、1.2の一部ではありません。ただしdocker-composeやAnsibleのファイルが絶えず使うので、JSONへ変換するときは適用し、そうしたという警告を添えます。YAMLの出力では、書かれたとおりに残します。
コメントが1つ消えました。なぜですか
ほぼ間違いなく、フロー形式のコレクションの中にあったコメントです——`[a, # メモ\n b]`のような場合です。フロー形式のコレクションは1行に出力し直されるので、その中のコメントには付く先の行がありません。自分の行にあるコメントと、値の後ろに付いたコメントは、すべて残ります。
ここから渡せます
TOMLフォーマッター・検証
TOML Formatter & Validator
TOMLを整形して検証し、テーブルの順序とインラインテーブルの書き方を揃えます。
JSON⇄YAML変換
JSON ⇄ YAML
キーの順序を保って双方向に変換し、YAML側はブロック記法かフロー記法かを選べます。
JSON Schema検証
JSON Schema Validator
文書をJSON Schemaで検証し、通らなかった箇所をインスタンスのパスとともに挙げます。
OpenAPIの点検
OpenAPI Linter
OpenAPI文書の抜けたレスポンス・使われていないスキーマ・どこも指していない参照など、コード生成器を壊す不備を点検します。
次の一手
このツールが出したものをそのまま受け取れる道具です。
JSONフォーマッター・検証
JSON Formatter & Validator
JSONを整形・圧縮して検証し、構文エラーがあれば行と列を正確に指し示します。
JSON Schema検証
JSON Schema Validator
文書をJSON Schemaで検証し、通らなかった箇所をインスタンスのパスとともに挙げます。
JSON⇄YAML変換
JSON ⇄ YAML
キーの順序を保って双方向に変換し、YAML側はブロック記法かフロー記法かを選べます。
Kubernetes Secretのデコード
Kubernetes Secret Decoder
Secretマニフェストの中のBase64値をすべて復号し、書き換えたものを適用できる形に符号化し直します。
Base64エンコード・デコード
Base64 Encoder & Decoder
テキストでもファイルでもBase64とBase64URLを符号化・復号し、UTF-8も正しく扱います。
curlをコードに変換
curl to Code
curlのコマンドをfetch・axios・Pythonのrequests・Go・PHP・PowerShellのコードに変換します。