TOML 整形

TOML を貼り付けると空白が整います。キー、文字列、値はそのまま保たれます。

使い方

  1. TOML を入力欄に貼り付けてください。入力するそばから整形され、押すボタンはありません。
  2. 複数行の配列にはスペース 2 つか 4 つを選び、等号をそろえたいときは「= をそろえる」をオンにします。結果はすぐに更新されます。
  3. 問題がある場合は、行・列・理由がメッセージに示されます。結果をコピーするか .toml ファイルとしてダウンロードします。

例

入力

[package]
name="ykit"
version = "0.1.0"
edition="2021"
authors = ["佐藤 花子 <hanako@example.com>",  "鈴木 一郎 <ichiro@example.com>"]
keywords=["ツール",   "toml"]

[dependencies]
serde={version="1.0",features=["derive"]}

整形後

[package]
name = "ykit"
version = "0.1.0"
edition = "2021"
authors = ["佐藤 花子 <hanako@example.com>", "鈴木 一郎 <ichiro@example.com>"]
keywords = ["ツール", "toml"]

[dependencies]
serde = { version = "1.0", features = ["derive"] }

既定のルール(スペース 2 つ、そろえなし)の例です。キーの順序、文字列の中身、配列の順序はそのままで、インラインテーブルは空白だけが整えられ、末尾にカンマは付きません。

ルール・制限・既知の問題

  • 確認するのは構文とキー・テーブルの衝突だけです。キーの重複、テーブルの二重定義、キーとテーブルの衝突、文字列とエスケープ、数値、日付、配列、インラインテーブルを見ます。スキーマや業務上の意味の確認、自動修正は行いません。
  • 書き換えるのは文字列とコメントの外側の空白だけです。キーの順序、テーブルの順序、裸のキーと引用符付きキーの別、文字列の区切りとエスケープ、数値・日付・真偽値の表記、コメントの文面は 1 文字ずつコピーします。
  • 1 行の配列は 1 行のまま、複数行の配列は 1 項目 1 行でコメントと末尾カンマを保ちます。インラインテーブルは 1 行で出力するため、その中の配列は 1 行に畳まれます。複数行文字列内の改行は内容なので入力のまま残り、その結果インラインテーブルが複数行にまたがることがあります。
  • インラインテーブル内の改行やコメントは構文エラーです(TOML 自体が両方を禁じています)。行末コメントはコードの 1 スペース後に置き、コメント末尾の空白は削除します。
  • 連続する空行は 1 行にまとめ、先頭と末尾の空行は削除します。テーブルとテーブルの間に空行を追加することはありません。
  • 入力の末尾で閉じられていない配列・インラインテーブル・複数行文字列、途中で切れたテーブルヘッダー、値のない `key =`、ドット直後で切れたキーパスはエラーではなく警告で、結果は出力されます。実際の誤り(カンマの欠落、引用符のない値、不正な日付)は行・列付きのエラーになります。報告するのは最初のエラーだけです。
  • 行と列は Unicode のコードポイントで数えるため、絵文字は 1 列です。CRLF は改行 1 つとして数えます。TOML の空白はスペースとタブだけで、文字列の外の U+3000 や U+00A0 はエラー、文字列の中では内容として扱います。
  • 裸のキーは ASCII のみです。日本語やアラビア語のキーは引用符で囲む必要があり、これはこのツールの好みではなく TOML 自体の仕様です。数値や日付を書き換えたり、別の数字体系に変換したりはしません。
  • 圧縮、キーの並べ替え、値の正規化、ファイルのアップロード、URL パラメータ、履歴はありません。すべてブラウザ内で動作し、何もアップロード・保存されません。
  • 20 万文字を超えると、入力が止まって約 0.6 秒後に結果が更新されます。テキストが切り捨てられることはありません。出力の改行は LF で末尾に改行は付かず、同じそろえ・インデント設定なら整形は何度行っても同じ結果になります。

設定ファイルが読みやすくなったあとによく使われるツールです。