TOML フォーマッタ & バリデータ
TOML を貼り付けて、TOML 1.0 の標準レイアウトでフォーマット、または構文を検証。アップロードなし。
- 左側のテキストエリアに TOML を貼り付けます。
- フォーマットをクリックすると @iarna/toml を通じてラウンドトリップし、標準レイアウトを生成します。
- 検証をクリックすると、入力を変更せずに構文を確認します。
- エラーは問題のある行と列を指します。
何ができるのか?
TOML 1.0 モードの @iarna/toml で TOML をパースし、標準レイアウトで再出力します — キーがサブテーブルの前、一貫した引用符付け、整数のアンダースコアは除去。検証ボタンは入力を変更せず仕様に対して構文をチェックします。コメントはラウンドトリップ中に削除されます(TOML フォーマッタは一般的に parse-and-dump サイクルで保持できません)。
例
乱雑な TOML 入力:
[server]
host="localhost"
port=8080
name="myapp" フォーマットされた出力:
name = "myapp"
[server]
host = "localhost"
port = 8080 よくある TOML エラーと修正方法
TOML 1.0 は YAML や JSON より厳格な規則を持ちます。以下のパターンが多くのパーサ失敗をカバーします。
- 引用符のない文字列。 `name = Ada` は無効です。二重引用符を使ってください: `name = "Ada"`。
- テーブルの再定義。 `[a]` を 2 回定義するのはエラーです。各テーブルヘッダは最大 1 回しか出現できません。キーを 1 つの `[a]` ブロックにマージしてください。
- テーブル後のトップレベルキー。 `[section]` を書いたら、それ以降のキーはすべてそのセクションに属します。キーは最初のテーブルヘッダの前に来る必要があります。フォーマッタが並び替えますが、生の入力自体が有効である必要があります。
- タイムゾーンなしの datetime。 `d = 2026-04-26T12:00:00` (Z やオフセットなし) は「ローカル datetime」です。パースはされますが、JSON スタイルのコンシューマはローカル性を表現する方法がない場合があります。UTC には `2026-04-26T12:00:00Z` を使ってください。
- インラインテーブルの拡張。 インラインテーブル `point = {x=1, y=2}` は閉じていて自己完結的です。後で `point.z = 3` を書くことはできません。拡張するには標準的な `[point]` ブロック構文を使ってください。
- トリプルクォートのエスケープの混乱。 `"""..."""` (基本複数行) はエスケープを処理します;`\'\'\'...\'\'\'` (リテラル複数行) は処理しません。両者を混ぜることが最も一般的な複数行文字列のエラーです。
よくある質問
フォーマットはデータを変えますか?
レイアウトのみ — TOML 規則に従い、プリミティブをサブテーブルの前にするためにキーが並び替えられ、空白が正規化され、整数のアンダースコアが除去されます(TOML 意味論)。値そのものは変わりません。
TOML コメントは保持されますか?
いいえ。@iarna/toml は parse-and-dump のラウンドトリップ中にコメントを破棄します。コメント保持のフォーマットが必要なら、ソース位置情報を保持する別のライブラリが必要です。
TOML 1.0 に対して検証しますか?
はい。@iarna/toml は TOML 1.0 に従います — 混合型配列、ドット付きキー、改訂された文字列規則の許可を含みます。TOML 0.5 専用の動作 (均質配列必須) に依存する入力もここでパースされますが、より厳格な 0.5 パーサで壊れる可能性があります。
どれくらいの大きさの TOML ファイルを扱えますか?
テキストエリアが遅くなる前に約 30 MB まで。ほとんどの設定ファイルは 1 MB 未満です。
私の TOML はアップロードされますか?
いいえ。すべてはあなたのブラウザで実行されます — 入力はこのページの JavaScript で解析・再シリアライズされ、サーバーに送信されることはありません。
なぜフォーマッタは私のキーを並び替えるのですか?
TOML 1.0 では同じスコープ内のトップレベルキー(プリミティブ)が任意のテーブルヘッダの前に現れる必要があります。フォーマッタはサブテーブルの前にプリミティブを並べることでこれを強制します。元の入力が異なる順序だった場合、フォーマット手順がそれを正規化します。