TOML 格式化与校验
TOML Formatter & Validator
格式化并校验 TOML,统一表的排列顺序和内联表的写法。
规范化一份 TOML 文件的空白——`key = value`、表头周围的空白、数组折行——并顺便按 TOML 1.0 规范检查它。两个读取器扫过这个文件:一个懂拼写规则并保留注释,一个懂语义规则并生成 JSON 视图。
TOML 输入
拖入 .toml 文件
只在这个标签页里读取,不上传。
整理后的 TOML
整理好了。
表
5
键值对
13
注释
1
检查
通过
它改什么,不改什么
- · 会统一的是
key = value周围的空格、[ a . b ]这样的表头里的空白,以及数组和内联表内部的间距,并在每个表头前留一个空行。 - · 短数组写成一行;超过换行宽度的数组,或者里面带注释的数组,一个元素一行,末尾加逗号。
- · 字符串、数字和日期原样保留。把
1_000写成1000,或者把0xff写成255,那是编辑,不是整理。 - · 不需要引号的键(
"name")会去掉引号;需要引号的键("127.0.0.1")用字面引号写出来。 - · 前导零、放错位置的下划线、
True、跨多行的内联表、重复的键、定义了两次的表,都按 toml.io 上的 TOML 1.0 规范拒绝。
要转成 JSON 或 YAML,请用 JSON ⇄ TOML 互转。
怎么用
粘贴文件
一份 `Cargo.toml`、`pyproject.toml`、`netlify.toml`。空白不一致正是重点——要修的就是这个。
设置数组折行宽度
短数组留在一行;超过宽度的,或者里面带注释的,会变成一行一个元素并带尾随逗号。那个尾随逗号是让以后的 diff 只有一行的关键。
有帮助时再排序,否则别排
键排序只移动键/值行,注释和空行留在原地。表排序对同一层级的表头排序,并把它们的子表一起带走。表数组的顺序是数据,所以从不触碰。
常见问题
为什么 `1_000` 没有被改写成 `1000`?
因为那是编辑,不是格式化。数字里的下划线、十六进制字面量、日期的精确写法都是作者选的。格式化器改空白和引号,值按原样保留。
它拒绝了我的文件,但另一个解析器接受了。
多半是 TOML 1.0 禁止而宽松读取器允许的东西之一:前导零、位置不对的下划线、大写 T 的 `True`、跨多行的内联表、重复的键,或者定义了两次的表。错误会说明是哪一种,并带行号。
切换到 JSON 时日期会怎样?
变成字符串,并有一条警告说明。TOML 把带偏移的日期时间、本地日期和本地时间当作真正的类型;JSON 一个都没有,所以文本被带过去,类型丢失。
注释会保留吗?
会,包括它相对于所属键的位置——这正是格式化器有自己的扫描器而不是复用转换器读取器的原因。注释数量显示在统计里。
可以从这些接进来
JSON ⇄ TOML 互转
JSON ⇄ TOML
在 JSON 和 TOML 之间转换,把嵌套对象映射成表头。
JSON 格式化与校验
JSON Formatter & Validator
把 JSON 美化成缩进形式或压成一行,校验语法并直接指出出错的行和列。
YAML 格式化与校验
YAML Formatter & Validator
统一 YAML 缩进并校验语法,把会让解析器崩掉的制表符和锚点错误标出来。
XML 格式化与校验
XML Formatter & Validator
整理 XML 缩进,并报出第一处结构不合法的行和列。
接下来
这些工具吃得下当前工具的产出,结果可以直接送过去。
JSON 格式化与校验
JSON Formatter & Validator
把 JSON 美化成缩进形式或压成一行,校验语法并直接指出出错的行和列。
JSON ⇄ TOML 互转
JSON ⇄ TOML
在 JSON 和 TOML 之间转换,把嵌套对象映射成表头。
YAML 格式化与校验
YAML Formatter & Validator
统一 YAML 缩进并校验语法,把会让解析器崩掉的制表符和锚点错误标出来。
Base64 编码解码
Base64 Encoder & Decoder
对文本和文件做 Base64 与 Base64URL 编解码,UTF-8 处理正确。
curl 转代码
curl to Code
把一条 curl 命令转成 fetch、axios、Python requests、Go、PHP 或 PowerShell 代码。
文本哈希计算
Text Hash
算出字符串的 MD5、SHA-1、SHA-256、SHA-384、SHA-512 和 CRC-32,输出可选大写或 Base64。