YAML Formatter & Validator
One input per line. Output is numbered to match the input order.
Pinned tools are listed in your favourites on the home page.Copies a link to this tool that carries your current input, so it opens ready to run.Gives you an iframe snippet for putting this tool on your own site.
Ctrl+Enter Run · Ctrl+Shift+C Copy · Esc Clear
Understand YAML Formatter & Validator
这个格式化工具用统一的缩进重新打印 YAML,并报告它读不懂的结构。
How it works
YAML 用缩进而不是括号表达嵌套,因此解析器会跟踪每一行以多少个空格开头,并据此构建映射。随后值按其文本确定类型:true 和 false 是布尔值,null 和 ~ 是 null,裸的数字是数字,其余一切在不加引号时都是字符串。输出由解析后的值重新序列化而来,这就是它回来时格式统一的原因——也是原文中任何注释都会消失的原因。
When to use it
- 在推送之前检查 GitHub Actions 工作流或 Kubernetes 清单。
- 找出粘贴进来的代码块落在了错误缩进层级的那一行。
- 把多人编辑过的配置文件的缩进统一起来。
- 确认你本想当作字符串的值没有被读成数字或布尔值。
Watch out for
- 在 YAML 中,制表符做缩进永远不合法。编辑器插入的一个制表符在任何符合规范的解析器里都是语法错误,而且它是不可见的——这是清单文件失败最常见的原因。
- 在 YAML 1.1 中——它仍是 PyYAML 和大量老旧工具链的默认设置——不带引号的 yes、no、on、off 是布尔值,因此值为 NO 的国家字段会变成 false。这就是所谓的 Norway 问题。本工具遵循 YAML 1.2,把它们当作字符串,所以无论如何都加上引号,两者就一致了。
- 注释不会被保留。重新格式化返回的是数据,不是文件,因此不要把结果粘回那些你还需要注释的配置文件。
- 本工具处理的是大多数配置文件具备的形态:顶层键、嵌套映射和简单列表。锚点与别名(&defaults、*defaults)、块标量(| 和 >)以及用 --- 分隔的多文档文件不会被复现。
Not the right tool for: 用模式校验一份清单文件。语法可以毫无问题,而每个字段都是错的;那要交给 kubeconform、actionlint 或平台自带的校验器。
Frequently Asked Questions
我的 YAML 为什么不合法?
常见的 YAML 错误:用制表符而不是空格做缩进(YAML 要求空格)、缩进层级不一致、特殊字符(: { } [ ] , # & * ? | - < > = ! % @ `)没加引号,以及 yes、no 这类特殊值被意外当成布尔值。
如何在 YAML 的值里包含冒号?
冒号后跟空格在 YAML 中会开启一对 key: value。要在值里包含字面冒号,请给整个字符串加引号:message: "Error: connection failed",多行值也可以使用块标量(|)。
这个工具使用哪个 YAML 版本?
本格式化工具使用 YAML 1.2,它比 YAML 1.1 更严格。与 1.1 不同,YAML 1.2 只把 true/false 当作布尔值(不含 yes/no/on/off),因而与 JSON 完全兼容。
How to Use YAML Formatter & Validator
- Paste or type your input in the input area above.
- The tool processes your input automatically or click Run.
- Copy or download the result using the action buttons.
- Use Ctrl+Enter to run quickly from the keyboard.