YAML 格式化工具
YAML 输入
粘贴 YAML,最多 1,000,000 个字符、100 个文档。格式化在此浏览器中完成。
YAML 对语法宽容,对缩进却毫不留情。一个空格的偏差就能悄悄把键变成列表项,而混乱的缩进会让代码评审苦不堪言。这个格式化工具直接在你的浏览器中用 js-yaml 引擎(YAML 1.2 核心模式)解析输入,再按你选择的缩进、集合风格、引号方式、键顺序和行宽重新输出,让配置在版本控制中 diff 干净,并在不同贡献者之间保持可读。
如何格式化 YAML
-
1
粘贴 YAML
最多 1,000,000 个字符,一个文档流中最多 100 个文档。不会上传任何内容:解析在你的浏览器中运行。
-
2
选择选项
缩进宽度、块式或流式风格、引号方式、键排序和行宽。
-
3
格式化
工具会以规范的间距和你选定的风格重建每个文档。
-
4
复制并提交
输出是结构完全相同的 YAML,可以直接粘贴回你的配置。
前后对比
杂乱的输入:
server:
port: 8080
hosts: ["api.example.com", "api2.example.com"]
timeout: 30
debug: true
格式化后(2 个空格,块式):
server:
port: 8080
hosts:
- api.example.com
- api2.example.com
timeout: 30
debug: true
格式化选项
| 选项 | 可选值 | 默认值 |
|---|---|---|
| 缩进宽度 | 2、4 | 2 |
| 集合风格 | 块式、流式 | 块式 |
| 引号方式 | 最少引号、双引号、单引号 | 最少引号 |
| 键排序 | 原始顺序、字母顺序 | 原始顺序 |
| 行宽 | 80、120、不限 | 120 |
引号规则
最少引号通常正是你想要的:字符串保持不加引号,除非裸写会带来风险。以下情况格式化工具会自动加引号:
- 写成字符串的旧式布尔值:
yes、no、on、off、y、n。YAML 1.2 已经把它们当作字符串读取,但很多解析器仍遵循 YAML 1.1,不加引号的no会变成false。格式化工具在输出中始终给它们加引号,这样著名的挪威 bug(国家列表里的NO被读成false)就不会坑到使用你文件的任何一方。 - 写成字符串的数字:
'007'、'3.14'。不加引号会被解析成整数或浮点数。 - 含有
:、#、[、{等字符或以空白开头的字符串,裸写输出会改变结构。
每次运行都会做的清理
- 行尾空白。 会被去除。
- 混乱或不规则的缩进。 统一为你选择的缩进宽度。
- 集合内部的空行。 会被移除。
- 缩进中的制表符。 YAML 禁止制表符;解析器会拒绝这样的输入,并给出指明所在行的清晰错误,让你可以先修复,而不是交付一份其他解析器都会拒绝的文件。
注释、锚点与合并键
格式化会规范化文档模型,在提交之前有几个限制值得了解:
- 注释会被移除。 解析器会把文档解析成数据,因此
#注释无法在格式化后保留。如果注释很重要,请先保留一份副本。 - 锚点和别名会被解析。 通过别名共享的节点仍然保持共享,但会以
&ref_0这样自动生成的名称重新输出;原始锚点名不会保留。 - 合并键(
<<:)会被解析,展开成包含合并后值的普通映射。
多文档流
支持包含多个文档的流:每个文档会被独立格式化,再用 --- 分隔符重新连接,每次最多处理 100 个文档。
常见问题
结构和值保持完全一致:变化的只有呈现方式(缩进、引号、流式或块式,以及启用排序后的键顺序)。按照设计,有两样东西不会保留:注释会被移除,锚点名称会被重新生成。
当裸写的字符串会被解析成其他类型时,为安全起见必须加引号。常见情况:纯数字的键或值、含 : 或 # 的字符串,以及 yes、no 这类会被 YAML 1.1 解析器读成 true/false 的旧式布尔值。
不能。风格选项作用于整个文档:块式会把每个集合展开成独立的行,流式则把集合内联呈现。如果需要对比,可以用不同的选项各格式化一次。
不会。解析和格式化都在你的浏览器中用内置的 js-yaml 引擎完成。你的 YAML 不会发送到服务器,不会被存储,也不会添加到页面地址中;它只保留在当前浏览器会话里,以便分步视图能够展示你的结果。
相关工具
ASCII 表参考
完整 ASCII 表,覆盖 0 到 127;列出每个代码的十进制、十六进制、八进制、二进制值和 HTML 数字字符引用写法,包括 NUL、LF、DEL。
HTML 字符参考
可搜索的 HTML 实体列表,含命名代码与数值代码,并支持一键复制特殊字符和符号。
键盘快捷键参考
搜索 macOS、Windows 和 Linux 上 VS Code、Chrome 以及使用 GNU Readline 的 Bash 的文档默认快捷键。
电话号码验证器
根据各国号码规划检查结构,并显示地区、类型以及E.164、国际、国内和RFC 3966格式。
BBCode 转 HTML 转换器
将 BBCode(论坛标记)转换为干净的 HTML。支持格式标签、列表、引用、代码、图片和链接。
布尔代数化简器
计算布尔表达式在每种输入组合下的值,并显示完整的真值表。支持最多五个变量和 &、|、!、^ 运算符。