YAML 格式化
解析后按统一风格重排的 YAML 美化器,缩进可选,错误带行列位置。
YAML 的可读性建立在缩进纪律上,而多来源的 YAML(不同编辑器、不同作者、复制粘贴)缩进风格经常打架:两格与四格混用、列表项与键不对齐、Tab 混进空格。本工具用 js-yaml 解析后按统一风格重新导出:缩进宽度可选,引号与换行风格归一,锚点等引用语法被展开为字面量。
解析失败时给出带行列位置的错误说明——YAML 的报错向来晦涩(「could not find expected :」),配合行列至少能定位到出错的那一行。解析成功即代表 YAML 合法,本页兼职语法校验。
为什么是解析后重排而不是字符级缩进
YAML 的缩进就是语法本身,字符级排版改缩进等于改语义——动错一格,列表变字典。只有解析成数据再重新导出,缩进才是「由数据结构唯一决定」的,不会引入语义变化。代价是注释会丢失(解析器不保留注释位置),需要保留注释的场景请用编辑器的格式化功能。
Tab 是 YAML 的天然敌人
YAML 规范直接禁止 Tab 缩进——它在打印宽度不同的环境里无法对齐。从 PDF、Word、微信里复制出来的 YAML 经常带着 Tab,本页会把这类输入在报错中标出来;格式化输出统一为空格。
常见问题
- 格式化会丢注释吗?
- 会。解析-重排的路线保不住注释(解析器不记录注释的位置)。这是「语义不变」与「注释保留」二选一的取舍,本工具选择前者;需要保留注释请用编辑器的 YAML 插件。
- 多文档(--- 分隔)支持吗?
- 不支持,报错提示。多文档流在配置文件场景罕见,用 --- 分隔后逐段处理即可。
- 能把 YAML 转 JSON 吗?
- 可以,用本站的 JSON 转换页(YAML → JSON 方向)或 JSON 核心组里的 YAML 工具页,与本页共用同一解析器。