YAML 格式化与美化工具

统一 YAML 的缩进,不丢失注释、锚点或文档分隔符。输入时即显示语法错误及其行号。

输入
输出

    数据不会离开你的浏览器。快捷键:Ctrl/⌘ + Enter 执行主操作。

    什么是 YAML 格式化工具?

    YAML 格式化工具会以统一的缩进和间距重写 YAML 文件,同时保持数据不变。由于缩进是 YAML 语法的一部分,手工编辑的文件很容易变得杂乱:一个块用 4 个空格缩进,下一个用 2 个,列表项时而缩进时而不缩进。格式化工具会把这些全部规范化,让文件更便于审阅,diff 也更干净。本工具基于完整的 YAML 1.2 解析器,能保留注释,而简单的“YAML 转数据再转回 YAML”会丢失注释。

    如何格式化 YAML

    1. 粘贴 YAML或打开 .yaml / .yml 文件,输入时会自动检查。
    2. 选择 2 或 4 个空格,并决定是否按字母顺序对键排序。
    3. 点击“格式化”。复制或下载结果,或用“转为 JSON”进行转换。

    示例

    缩进混乱并带有注释的输入:

    services:
        web:   # public entry point
            image: nginx:1.27
            ports:
            - "80:80"
        db:
          image: postgres:16

    以 2 个空格格式化后:

    services:
      web: # public entry point
        image: nginx:1.27
        ports:
          - "80:80"
      db:
        image: postgres:16

    格式化会改变什么、保留什么

    会改变会保留
    映射和序列的缩进注释,包括行内注释
    冒号和短横线后的空格锚点、别名、标签和合并键
    键的顺序(仅在勾选“键排序”时)字符串的引号风格、块标量
    流式集合保持原样,仅规范空格多文档文件中的文档分隔符(---)

    YAML 不合法时

    格式化要求文档能够被解析。如果无法解析,问题列表会显示每个错误的行号和列号,并附上通俗的解释:用制表符缩进、键的冒号后缺少空格、某行的缩进层级对不上任何父级、括号或引号未闭合、键重复等。YAML 校验器页面会详细解释每一种情况。格式化工具还会对 YAML 1.1 工具解读不同的值发出警告,例如未加引号的 no 或 0755。

    需要把同样的数据转成其他格式?请用 YAML 转 JSON。要比较两个版本?请用 YAML 对比。

    YAML 格式化工具常见问题

    YAML 格式化工具会保留注释吗?

    会。格式化工具基于 YAML 文档树工作,而不是纯数据,因此注释会始终跟随它们所描述的键和元素。锚点(&name)、别名(*name)、标签和 --- 文档标记也都会保留。

    为什么 YAML 不能选择制表符缩进?

    YAML 规范禁止使用制表符缩进,只允许空格。因此 YAML 输出时制表符选项不可用。

    列表项如何缩进?

    序列的元素缩进在父级键之下(key:\n - item),这是 Kubernetes、GitHub Actions 和大多数风格指南采用的写法,也是 yamllint 默认接受的风格。

    能格式化包含多个文档的文件吗?

    可以。用 --- 分隔的多文档文件(Kubernetes 清单中很常见)会逐个文档格式化,并保留分隔符。

    格式化会改变值吗?

    不会。值会尽量按原风格写回:带引号的字符串仍带引号,块标量(| 和 >)内容不变,数字保持原有写法。格式化工具只改变缩进和间距。