TOML 格式化

貼上 TOML 就自動歸一空白,鍵、字串和值一個字元都不改。

怎麼用

  1. 把 TOML 粘進輸入框——邊寫邊排版,不用點按鈕。
  2. 選 2 / 4 空格縮排(隻影響多行陣列),需要時開啟「對齊 =」;結果立刻更新。
  3. 寫錯時提示給出第幾行第幾列和原因;結果可複製或下載為 .toml 檔案。

示例

輸入

["伺服器"]
"連接埠"=8080
"地址" = "127.0.0.1"
"顯示名"="演示環境"
"標籤" = [ "內網" , "測試" ]

輸出

["伺服器"]
"連接埠" = 8080
"地址" = "127.0.0.1"
"顯示名" = "演示環境"
"標籤" = ["內網", "測試"]

預設只做歸一:2 空格、不對齊。鍵順序、字串內容、陣列元素順序原樣保留;內聯表只歸一空白,不加尾逗號。

規則、侷限與已知問題

  • 只做語法與鍵/表衝突檢查:重複鍵、表重複定義、鍵與表衝突、字串與轉義、數字、日期、陣列、內聯表。不做 schema、不解析業務含義、不自動修復。
  • 只改字串與註解之外的空白;鍵順序、表順序、裸鍵/引號鍵的選擇、字串定界符與轉義、數字/日期/布林字形、註解文字都逐字元保留。
  • 單行陣列保持單行;多行陣列一項一行,保留註解與尾逗號。內聯表按單行渲染,其中的陣列會壓成單行;多行字串裡的換行屬於內容,仍原樣保留(可能讓內聯表跨行)。
  • 內聯表裡不允許換行和註解(這是 TOML 語法)。行尾註解與程式碼之間固定 1 個空格,註解末尾的空白會被去掉。
  • 連續空行收斂為 1 行,去掉文首文末空行,不自動新增表間空行。
  • 輸入末尾未閉合(陣列、內聯表、多行字串、截斷的表頭、單獨的 `key =`、點號後截斷的鍵)只給提示、不報錯,仍然出結果——這是即時輸入的正常狀態。真正寫錯(缺逗號、值沒引號、日期不合法)才報錯並給行列;只報第一個錯誤。
  • 行列號按 Unicode 碼點計,emoji 記 1 列;CRLF 記一次換行。只有空格與 Tab 是 TOML 空白:全形空格 U+3000 與不換行空格 U+00A0 出現在字串外會報錯,出現在字串內是內容。
  • 裸鍵只認 ASCII:中文/阿語鍵必須加引號,這是 TOML 本身的要求。數字與日期寫法不會被改寫,也不會換成其他數字體系。
  • 不提供 minify、鍵排序、值規範化、檔案上傳、URL 傳參、歷史記錄。全部計算在瀏覽器裡完成,不上傳、不儲存。
  • 超過 20 萬字符時,結果在停止輸入約 0.6 秒後更新;不截斷。輸出使用 LF、無末尾換行;在相同的縮排與對齊設定下排版是冪等的。

配置排清楚之後,通常還會用到這些。