本文へスキップ

TOMLフォーマッター・検証

TOML Formatter & Validator

TOMLを整形して検証し、テーブルの順序とインラインテーブルの書き方を揃えます。

TOMLファイルの間隔を整えます。`key = value`、見出しの空白、配列の折り返しを揃え、ついでにTOML 1.0の仕様に合っているかも確かめます。ファイルの上を2つのリーダーが通ります。1つは表記の規則を知っていてコメントを守り、もう1つは意味の規則を知っていてJSONの表示を作ります。

🔒 ブラウザの中だけで動きますtomlformatvalidateconfig
出力
インラインテーブル
配列の折り返し幅

TOML 入力

.toml ファイルを置く

このタブの中だけで読みます。どこにもアップロードしません。

整形された TOML

整形しました。

テーブル

5

キーと値の組

13

コメント

1

検査

合格

何を変えて何を残すか

  • · そろえるのは、 key = valueのまわりの空白、 [ a . b ] のような見出しの中の空白、配列やインラインテーブルの中の間隔です。見出しの前には空行をひとつ置きます。
  • · 短い配列は1行に、折り返し幅を超える配列や中にコメントのある配列は要素ごとに1行にして、最後の要素のうしろにカンマを付けます。
  • · 文字列・数値・日付は書かれたとおりに残します。 1_000を 1000に、 0xffを 255にするのは整形ではなく編集です。
  • · 引用符が要らないキー("name")からは引用符を外し、要るキー("127.0.0.1")はリテラルの引用符付きで書きます。
  • · 先頭のゼロ、置き場所を誤ったアンダースコア、 True、複数行にまたがるインラインテーブル、重複したキー、二度定義されたテーブルは、toml.io の TOML 1.0 仕様どおりに拒否します。

JSON や YAML に変換するには JSON⇄TOML変換 を使ってください。

使い方

  1. ファイルを貼り付けます

    `Cargo.toml`、`pyproject.toml`、`netlify.toml`といったものです。間隔がまちまちなのは当たり前で、それを直すためのものです。

  2. 配列を折り返す幅を決めます

    短い配列は1行のままです。幅を超えるもの、あるいは中にコメントがあるものは、1要素につき1行にして末尾にカンマを付けます。その末尾のカンマが、この先の差分を1行に抑えてくれます。

  3. 役に立つときだけ並べ替えます

    キーの並べ替えはキーと値の行だけを動かし、コメントと空行はその場に残します。テーブルの並べ替えは同じ階層の見出しを名前順に動かし、その下のテーブルも一緒に連れていきます。テーブルの配列の順序はデータなので、手を触れません。

よくある質問

`1_000`が`1000`に書き換えられないのはなぜですか

それは整形ではなく編集だからです。数値の中のアンダースコア、16進のリテラル、日付をどう書いたか——どれも書いた人が選んだものです。フォーマッタが変えるのは空白とクォートだけで、値は書かれたままにします。

他のパーサは受け付けるファイルが、ここでは拒否されました

TOML 1.0が禁じていて、寛容なリーダーが見逃すもののどれか、という可能性が高いです。先頭のゼロ、置き場所の違うアンダースコア、大文字で始まる`True`、複数行にまたがるインラインテーブル、キーの重複、二度定義されたテーブルといったものです。エラーがどれなのかを行番号とともに示します。

JSONに切り替えると日付はどうなりますか

文字列になり、そのことを警告で伝えます。TOMLにはオフセット付きの日時、ローカル日付、ローカル時刻が正式な型としてありますが、JSONにはどれもありません。文字だけが移り、型は失われます。

コメントは残りますか

残ります。どのキーに付いていたかという位置関係も一緒に守ります。フォーマッタが変換ツールのリーダーを使い回さず、自分のスキャナを別に持っているのはそのためです。コメントの数は統計に出ます。

ここから渡せます

次の一手

このツールが出したものをそのまま受け取れる道具です。