YAML 查看器

格式化、校验并查看 YAML 文档,支持键排序与锚点/别名展开控制。

格式化、校验并查看 YAML 文档,支持键排序与锚点/别名展开控制。 格式化、校验并查看 YAML 文档,支持键排序与锚点/别名展开控制。

Array

        
    

背景知识

YAML 是什么,为什么要用查看器

YAML("YAML Ain't Markup Language")是一种对人类友好的数据序列化格式,广泛用于配置文件(docker-compose.yml、Kubernetes 清单、GitHub Actions 工作流、Ansible playbook 等)。它用缩进表达结构、引入日期/多行字符串/引用等更丰富的类型系统,换取了 JSON 的严格性。

YAML 依靠缩进表达嵌套,一个空格缺失就可能改变整篇文档的含义,而大多数编辑器不会高亮层级。查看器解析文档后用统一缩进重新输出,既展现结构,又暴露缩进错误。

关键特性

大多数查看器允许切换若干行为:按键名字典序排序以便稳定 diff,展开或剥离 YAML 锚点与别名(& / * 语法),选择缩进宽度。排序选项在比较同一配置的两份快照时尤其有价值——没有它,发布之间的键重排会掩盖真实变更。

字节数和顶层键统计帮助你一眼看清文档有多重、重量在哪里。如果你要确认 YAML 是否塞得进环境变量上限或 Kubernetes ConfigMap 容量,那数字就在那里。

工作流建议

调试解析错误时,把文档复制到新的查看器标签,逐个切换选项:&anchor 语法可能要展开后才看出是不是手误。超长流水线用 4 空格缩进以匹配常见风格指南;内联审阅或聊天粘贴用 2 空格更紧凑。提交配置时始终保留原文档结构——查看器是用来检查的,不是用来标准化的。

使用 MIT 协议的 js-yaml 库(已内置于 public/assets 中)。输入内容在本地解析,绝不上传。

常见问题

为什么 YAML 看起来像多此一举的 JSON?
JSON 是 YAML 1.2 的严格子集:每个 JSON 文档都是合法的 YAML 文档。YAML 在此基础上增加了注释、多行字符串、引用和更丰富的类型系统。
锚点 (&) 和别名 (*) 的区别是什么?
锚点(&name value)用一个名字标记某个值;别名(*name)在其它位置复用该值。查看器可以把别名内联展开(*name 变为原值)或剥离,这在提交前规范化输出时很有用。
查看器重新输出时会保留注释吗?
不会。大多数 YAML 库(包括 js-yaml)在 load/dump 来回中会剥离注释,因为 YAML 的数据模型不包含注释。如果注释重要,请直接编辑原文件。
为什么查看器说找不到 tab 字符?
YAML 不允许用 tab 缩进,只能用空格。即使在块字符串里出现一个 tab 也会让某些解析器困惑。请把 tab 替换为空格后重试。
查看器会合并多文档 YAML 文件吗?
它对每个文档单独解析和重新输出,但当前查看器一次只输出一个文档。多文档请使用专用编辑器。
我的 YAML 会上传吗?
不会。解析和重新格式化都在本地通过内置的 js-yaml 库完成,不会离开浏览器。