YAML 格式化与校验
YAML Formatter & Validator
统一 YAML 缩进并校验语法,把会让解析器崩掉的制表符和锚点错误标出来。
把一份 YAML 文件的缩进统一,并告诉你换一个解析器会读出什么不同的东西。它是一个保留注释、锚点、标签和块标量的 YAML 1.2 读取器,所以输出是你的文档修好了布局——而不是经过一个会把注释扔掉的数据模型走一个来回。
YAML 输入
拖入 .yaml 文件
只在这个标签页里读取,不上传。
格式化后的 YAML
已格式化。
读出来了,但各家解析器未必这么读
- 19:22 — `no` 在 YAML 1.2 里是字符串 "no"。YAML 1.1 解析器会把它读成布尔值——加上引号,或者写成 true/false,两边才会一致。
文档
1
键
30
列表项
8
锚点 / 别名
1 / 1
警告
1
这个格式化工具做什么,不做什么
- · 按 YAML 1.2 核心 schema 读取。
yes、no、on、off都是字符串,0755是十进制的 755,不是八进制。凡是 1.1 解析器会读成别的值,上面都会给出警告。 - · 注释、锚点(
&)、别名(*)、标签,以及|、>块标量都原样保留。值的顺序也不会变。 - · 用制表符缩进、键重复、别名先用后定义、引号没闭合,都会当作错误抓出来,并给出行和列。
- · 合并键
<<是 YAML 1.1 的特性,但 docker-compose 和 Ansible 的文件用得实在太多,所以转成 JSON 时会应用它,并同时给出警告。 - ·
[a, b]这类流式集合里的注释没有可挂靠的行,会丢掉。其余注释都保留。
要转成 JSON 或 TOML,请用 JSON ⇄ YAML 互转;要拿 schema 校验文档,请用 JSON Schema 校验。
怎么用
粘贴清单或配置
Kubernetes 清单、CI 文件、docker-compose。用 `---` 分隔的多份文档按流读取并分别计数。
选列表风格
人们真正争论的那一个设置:`- item` 和它的键平齐,还是缩进在键下面。两种都是合法的 YAML;Kubernetes 清单习惯上用平齐的写法。
读警告
含义取决于读取器实现哪个 YAML 版本的值——`yes`、`no`、`0755`——会带行列号列出。在另一个工具上把部署搞坏的正是这些。
或者把输出切成 JSON
同一次解析,渲染成 JSON,这是看一个值实际解析成了什么最快的办法——包括合并键展开成了什么。
常见问题
为什么这里 `no` 是字符串?
因为 YAML 1.2 的核心 schema 这么规定:布尔值只有 `true` 和 `false`。YAML 1.1——PyYAML 至今默认的仍是它——把 `no`、`off` 和 `n` 读成 false。凡是两者不一致的值都会标成警告,因为那是行为上的真实差异,不是风格差异。
我的锚点和别名会保留吗?
在 YAML 输出里,会——`&res` 和 `*res` 按你写的输出,数量显示在统计里。JSON 视图必须展开它们,因为 JSON 没有办法表达「再来一次同一个节点」。
支持合并键吗?
`<<:` 是 YAML 1.1 的特性,不属于 1.2——但 docker-compose 和 Ansible 文件一直在用,所以转成 JSON 时会应用它,并附一条警告说明发生了这件事。在 YAML 输出里它按原样保留。
有条注释不见了。为什么?
几乎可以肯定它在一个流式集合里——`[a, # note\n b]`。流式集合会重新打印成一行,那里的注释没有一行可以附着。每一条独占一行或跟在值后面的注释都会保留。
可以从这些接进来
TOML 格式化与校验
TOML Formatter & Validator
格式化并校验 TOML,统一表的排列顺序和内联表的写法。
JSON ⇄ YAML 互转
JSON ⇄ YAML
双向转换并保住键的顺序,YAML 一侧可选块状或流式写法。
JSON Schema 校验
JSON Schema Validator
用 JSON Schema 校验文档,每一处失败都带上它在实例里的路径。
OpenAPI 检查
OpenAPI Linter
检查 OpenAPI 文档里缺失的响应、没人用的 schema、指不到东西的引用,以及别的会弄坏代码生成器的毛病。
接下来
这些工具吃得下当前工具的产出,结果可以直接送过去。
JSON 格式化与校验
JSON Formatter & Validator
把 JSON 美化成缩进形式或压成一行,校验语法并直接指出出错的行和列。
JSON Schema 校验
JSON Schema Validator
用 JSON Schema 校验文档,每一处失败都带上它在实例里的路径。
JSON ⇄ YAML 互转
JSON ⇄ YAML
双向转换并保住键的顺序,YAML 一侧可选块状或流式写法。
Kubernetes Secret 解码
Kubernetes Secret Decoder
把 Secret 清单里的每个 Base64 值都解出来,改完再编码回去,直接就能 apply。
Base64 编码解码
Base64 Encoder & Decoder
对文本和文件做 Base64 与 Base64URL 编解码,UTF-8 处理正确。
curl 转代码
curl to Code
把一条 curl 命令转成 fetch、axios、Python requests、Go、PHP 或 PowerShell 代码。