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、无末尾换行;在相同的缩进与对齐设置下排版是幂等的。

配置排清楚之后,通常还会用到这些。