YAML 格式化
用真解析器重排 YAML 缩进,注释、锚点与块标量原样保留;支持压缩成单行、语法出错定位到行列,浏览器本地处理。
功能特性
走真正的 YAML 解析器,只重排缩进与空白;「# 注释」「&anchor / *alias」「script: |」这类块标量都不会被改写。
常见的「按行猜缩进」写法会把块标量与嵌套列表的缩进压平,输出不再是合法 YAML,甚至把列表项里的字段挪到上一层 —— 这里不存在这个问题。
多文档(---)逐个重排后再用 --- 拼接,一份 k8s manifest 不用拆成几段分别处理。
把所有层级收成 flow 风格的单行 YAML,适合塞进环境变量或配置项;压缩会丢掉注释。
缩进错位、制表符、键重复等直接给出「第 X 行第 Y 列」与原因,不会静默输出半成品。
解析与重排都在浏览器里完成,配置内容不会上传服务器。
使用步骤
把待整理的 YAML 贴到左侧,边输入边校验,出错即时提示行列。
格式化(保留注释)或压缩成单行;格式化时可选 2 / 4 空格缩进。
右侧实时给出结果,一键复制,或下载 .yaml 文件。
适用场景
常见问题
为什么这个格式化不会改坏我的 YAML?
因为它先把文档解析成语法树再输出,只重新决定缩进与换行。网上不少「YAML 格式化」是按行找冒号、按行尾是否带冒号猜层级,遇到「script: |」这样的块标量或「containers:」下的嵌套列表就会把缩进压平,输出已经不是合法 YAML;更隐蔽的是列表项里带冒号的值(如 - note: "port: 8443")会被挪到上一层,输出仍能解析但数据已经变了。
压缩成单行会丢什么?
只丢注释。压缩把所有层级收成 flow 风格,注释不再有位置;键值、锚点与别名、数值类型全部保留,超出安全范围的整数也不会被降精度。
支持 --- 分隔的多文档吗?
支持。每个文档分别重排后再拼接,k8s 那种一份文件里放多个资源的情况可以直接整份贴进来。
会不会把我的合并键与别名展开?
不会。格式化只做排版、不改写语义,「<<: *anchor」与「*alias」原样保留 —— 展开合并键属于「转成 JSON」场景的行为,在另一个工具里。
数据会上传到服务器吗?
不会。解析与重排全部在浏览器本地完成,关闭页面数据即消失。