YAML フォーマッター
YAML入力
最大100万文字、最大100ドキュメントまでの YAML を貼り付けてください。整形はこのブラウザ内で行われます。
YAML は構文には寛容ですが、インデントには容赦がありません。スペース 1 つのずれでキーが静かにリスト項目へ変わり、混在したインデントはレビューを苦行にします。このフォーマッターは js-yaml エンジン(YAML 1.2 コアスキーマ)を使って入力をブラウザ内で直接解析し、選んだインデント、コレクションのスタイル、クォート、キーの順序、行幅で出力し直します。設定ファイルがバージョン管理できれいな diff を生み、誰にとっても読みやすい状態を保てます。
YAML の整形手順
-
1
YAML を貼り付ける
1 つのストリームに最大100万文字、最大100ドキュメントまで。何もアップロードされません。解析はブラウザ内で行われます。
-
2
オプションを選ぶ
インデント幅、ブロックまたはフローのスタイル、クォート、キーの並べ替え、行幅を選べます。
-
3
整形する
ツールが各ドキュメントを正規の空白と選んだスタイルで組み立て直します。
-
4
コピーしてコミット
出力は構造的に同一の YAML なので、そのまま設定ファイルに貼り戻せます。
整形前と整形後
乱れた入力:
server:
port: 8080
hosts: ["api.example.com", "api2.example.com"]
timeout: 30
debug: true
整形後(スペース2つ、ブロックスタイル):
server:
port: 8080
hosts:
- api.example.com
- api2.example.com
timeout: 30
debug: true
整形オプション
| オプション | 値 | デフォルト |
|---|---|---|
| インデント幅 | 2、4 | 2 |
| コレクションのスタイル | ブロック、フロー | ブロック |
| クォート | 最小限、ダブル、シングル | 最小限 |
| キーの並べ替え | 元の順序、アルファベット順 | 元の順序 |
| 行幅 | 80、120、無制限 | 120 |
クォートのルール
たいていは最小限のクォートで十分です。裸のままでは危険な場合を除き、文字列は引用符なしのままになります。次のケースではフォーマッターが自動的にクォートを付けます:
- 文字列としてのレガシーなブール値:
yes、no、on、off、y、n。YAML 1.2 はこれらを文字列として読みますが、多くのパーサーはいまだに YAML 1.1 に従い、クォートなしのnoはfalseになります。フォーマッターは出力で必ずクォートを付けるため、有名なノルウェー問題(国リストのNOがfalseと読まれる)がファイルの利用者を噛むことはありません。 - 文字列としての数値:
'007'、'3.14'。クォートがなければ整数や浮動小数点数として解析されてしまいます。 :、#、[、{などの文字を含む、または先頭が空白の文字列。裸で出力すると構造が変わってしまいます。
毎回の整形で行われるクリーンアップ
- 行末の空白。 削除されます。
- 混在した、または不揃いなインデント。 選んだインデント幅に正規化されます。
- コレクション内の空行。 削除されます。
- インデント内のタブ。 YAML では禁止です。パーサーは行番号を示す明確なエラーで入力を拒否するので、他のパーサーに拒否されるファイルを出荷する前に修正できます。
コメント、アンカー、マージキー
整形はドキュメントモデルを正規化するため、コミット前に知っておきたい制限があります:
- コメントは削除されます。 パーサーはドキュメントをデータに解決するので、
#コメントは整形後に残りません。コメントが大事な場合はコピーを取っておいてください。 - アンカーとエイリアスは解決されます。 エイリアスで共有されたノードは共有されたままですが、
&ref_0のような生成名で出力し直され、元のアンカー名は保持されません。 - マージキー(
<<:)は解決され、マージ済みの値を持つ通常のマッピングになります。
複数ドキュメントのストリーム
複数ドキュメントのストリームに対応しています。各ドキュメントは独立して整形され、--- 区切りで再連結されます。1 回の実行で最大100ドキュメントまでです。
よくある質問
構造と値は同一のままで、変わるのは表現だけです(インデント、クォート、フローかブロックか、並べ替えを有効にした場合のキー順)。仕様として保持されないものが 2 つあります。コメントは削除され、アンカー名は再生成されます。
裸の文字列が別の型として解析されてしまう場合、安全のためにクォートが必要です。よくあるケースは、数字だけのキーや値、: や # を含む文字列、そして YAML 1.1 のパーサーが true/false と読んでしまう yes や no のようなレガシーなブール値です。
できません。スタイルのオプションはドキュメント全体に適用されます。ブロックはすべてのコレクションを行ごとに展開し、フローはコレクションをインラインで表記します。比較したい場合は、オプションを変えて 2 回整形してください。
いいえ。解析と整形は、同梱の js-yaml エンジンでブラウザ内で実行されます。YAML はサーバーを経由せず、保存されず、ページのアドレスに追加されることもありません。複数ステップの画面で結果を表示するために、このブラウザのセッション内にだけ保持されます。
関連ツール
BinaryからHexへのコンバーター
バイナリ入力を大文字の16進数値に変換します。0と1以外は無視され、先頭の0は保持されません。
バイナリからASCIIへの変換ツール
バイナリ(スペース区切りのバイト、または長いビット列)を貼り付けると、それが表すASCIIテキストを取得できます。7ビットと8ビットのエンコードに対応。
FPS カウンター
requestAnimationFrame でブラウザーの FPS を測定。平滑化、最小・最大フレームレート、警告しきい値、任意のグラフに対応。ローカルで動作し、アップロードも API も不要です。
Base64 → Hex 変換ツール
Base64文字列を、その背後にあるバイトの16進表現へ変換します。トークン、鍵、証明書、JWTの確認に便利です。
カラーパレットジェネレーター
基準のHEXカラーから、モノクロマティック、類似色、補色、トライアド、テトラードのパレットを生成し、コピーしやすいCSS変数として書き出します。
2進数から10進数へ変換
2進数を瞬時に10進数へ変換します。各ビットがどのように寄与するかが分かる位取り展開を表示します。