YAML → TOML

YAML 設定を TOML に変換し、インデントとキー並べ替えを選択できます。

YAML 設定を TOML に変換し、インデントとキー並べ替えを選択できます。 YAML 設定を TOML に変換し、インデントとキー並べ替えを選択できます。

出力

背景

YAML と TOML の重なりと違い

YAML と TOML はどちらも人間可読な設定形式を目指しています。表現できるデータ(マッピング、シーケンス、スカラ)は大きく重なりますが、文法と一部の境界ケースで異なります。YAML はタグ、アンカー、複数行スカラをサポートし、TOML はインラインテーブルとテーブル配列を区別し、日付を一級型として扱います。

あるツールが好む形式から別の形式に設定ファイルを移行する際に、YAML→TOML 変換器が最も役立ちます。例えば Kubernetes マニフェストを pyproject.toml のスニペットに移す、または Ansible のインベントリを Cargo の [dependencies] テーブルに書き直す場合です。

変換で残るもの

マッピング(YAML の key: value)は文脈に応じて TOML テーブルまたはキー/値のペアになります。シーケンスはインライン配列または [[array.of.tables]] ヘッダになります。スカラはきれいにマップできる限り保たれます:文字列、整数、浮動小数点、真偽値、ISO 日付。

残らないもの

YAML のアンカーとエイリアスは解析時にフラット化され、変換後の TOML では各エイリアス箇所に具体的な値が入ります(多くの利用者が望む挙動です)。YAML の !!binary タグは TOML に相当するものがないため保持されません。コメントは意図的に削除されます。どちらの形式もラウンドトリップ保持を保証しないためです。

使いこなしのヒント

変換後の TOML をコミットする前に、プロジェクトの TOML リンタ(taplo、toml-check など)を実行してください。変換器は構文のみを変換し、スタイルは変換しません。リンタが変換器には検知できないクォート、インデント、キー順の問題を検出します。

MIT/BSD-3 ライセンスの 2 つのライブラリ(public/assets に同梱)を使用:js-yaml で解析し、smol-toml で生成します。入力はローカルで処理されます。

よくある質問

変換器は YAML のアンカーを処理しますか?
はい。アンカー(`&name value`)とエイリアス(`*name`)は解析中に展開されるため、TOML では各エイリアス箇所に解決済みの値が入ります。元のアンカー名は保持されません。
YAML のコメントは残りますか?
いいえ。主要なパーサはすべて YAML コメントを取り除きます。必要であれば TOML に手で追加してください。
変換器は複数ドキュメント YAML を扱えますか?
いいえ。本ツールはアップロードを常に単一ドキュメントとして扱います。複数ドキュメントは専用ツールを使用してください。
TOML は複数行文字列をサポートしますか?
はい。改行を含む YAML スカラについて、変換器は TOML の三重引用符 Basic String を出力し、可読性を保ちます。
YAML の !!binary データは?
TOML には base64 バイナリブロブに相当するものはありません。変換器は警告を出してその値をスキップし、黙った破損を防ぎます。
YAML はアップロードされますか?
いいえ。解析はローカルの js-yaml で行い、TOML の生成はローカルの smol-toml で行います。サーバへの送信は一切ありません。