本 YAML 格式化工具的主要特点
- 基于 Prettier 的格式化,专为 YAML 1.2 配置文件优化
- 一致的缩进,可配置缩进大小(1–8)及空格与制表符
- 可调整的换行/行长度,使长键和值保持可读性
- 正确处理锚点、别名、布尔值作为字符串和多行块标量
- 支持 `.yaml` 和 `.yml` 文件,适用于 Kubernetes、Docker Compose、CI 流水线等
- 从编辑器粘贴 YAML 或将配置文件拖放至格式化工具
- 一键复制格式化后的 YAML 回编辑器或仓库
- 格式化主要在浏览器客户端运行;仅在缺少必要解析器/插件时使用安全服务器备用方案
🔧 如何格式化 YAML 配置文件 for yaml-formatter
1. 粘贴或上传您的 YAML
复制任何 YAML 片段(Kubernetes 清单、`docker-compose.yml`、GitHub Actions 工作流、Ansible 剧本等)并粘贴到编辑器中,或拖放 `.yaml` / `.yml` 文件。
2. 调整缩进和换行
选择使用空格或制表符,设置缩进大小(1–8 空格),并调整换行/行长度以匹配团队风格。换行长度为 `0` 时,通过使用非常大的内部 `printWidth` 有效禁用换行。
3. 运行格式化工具
点击 **格式化** 按钮。基于 Prettier 的 YAML 引擎重写您的配置,保持一致的缩进,同时保留锚点、别名和块标量,确保语义不变。
4. 复制清理后的 YAML
查看输出,然后将格式化后的 YAML 复制回编辑器,提交到 Git,或粘贴到 CI/CD 或云提供商界面中。
技术规格
格式化引擎与 YAML 支持
此工具基于 Prettier 的 YAML 格式化器构建,配置选项在 UI 中展示。
| 功能 | 支持 | 备注 |
|---|---|---|
| YAML 版本 | ✅ YAML 1.2(典型) | 适用于 Kubernetes、Docker、CI/CD 及应用程序中使用的现代配置风格 YAML。 |
| 锚点与别名 | ✅ 保留 | 在重新缩进周围结构时保持 `&anchor` 和 `*alias` 引用不变。 |
| 块标量 | ✅ 保留 | 保持 `|` 和 `>` 块标量,并尊重内部缩进。 |
| 布尔值与数字 | ✅ 谨慎处理 | 格式化保留值,但可能暴露 `yes` 与 "yes" 或 `0012` 与 "0012" 之间的差异。 |
| 多文档 YAML (`---`) | ✅ 典型 | 同一文件中的多个文档保持顺序一致并格式化统一。 |
缩进、换行长度与输出样式
格式化器提供关键选项,以便您尽可能匹配项目的风格。
| 设置 | 选项 | 实用建议 |
|---|---|---|
| 缩进样式 | 空格 / 制表符 | 大多数 YAML 风格指南推荐使用空格;仅当团队明确偏好时使用制表符。 |
| 缩进大小 | 1–8 个空格 | Kubernetes 和 Docker 常用 2 个空格;4 个空格可提供更清晰的视觉区分。 |
| 换行 / 行长度 | 0–120 列 | `0` 禁用换行(使用非常大的内部 `printWidth`),80–100 保持差异紧凑。 |
| 文件扩展名 | .yaml, .yml | 匹配工具配置中的 `fileExtensions` 和 `acceptedFileTypes`。 |
限制与性能
针对浏览器标签页中 YAML 配置的交互式格式化进行了优化。
| 参数 | 限制 / 行为 | 备注 |
|---|---|---|
| 最大文本输入大小 | ≈ 2 MB (~2,000,000 字符) | 在格式化函数内部强制执行的安全限制。 |
| 最大文件上传大小 | ≈ 5 MB | 受限于UI的`maxFileSize`设置,以确保便捷性和可靠性。 |
| 格式化超时 | 约25秒 | 长时间运行的操作会被中止,以防止浏览器卡顿。 |
| 主要执行方式 | 客户端 | 通过`runPrettier`和Prettier YAML插件直接在浏览器中运行。 |
| 服务器回退 | 仅在解析器/插件错误时 | 如果缺少必需的解析器插件,可以使用安全的`/api/yaml-formatter`端点作为回退方案。 |
YAML格式化的CLI替代方案
使用在线格式化器进行快速清理,对于大型项目和自动化流水线则依赖CLI工具。
Linux / 🍏 macOS
使用yq格式化YAML文件(美化输出)
yq eval -P config.yaml > config.formatted.yaml根据yq版本,以一致的缩进和键顺序重写YAML。
使用Prettier标准化YAML
prettier --parser yaml --write "**/*.{yaml,yml}"在整个代码库中运行相同类型的引擎(Prettier YAML解析器)。
Windows (PowerShell / cmd)
使用PowerShell + yq格式化YAML
yq eval -P config.yaml | Set-Content config.formatted.yaml美化YAML输出并将结果写回磁盘。
通过PowerShell对象进行YAML往返处理
Get-Content config.yaml -Raw | ConvertFrom-Yaml | ConvertTo-Yaml | Set-Content config.formatted.yaml利用PowerShell的YAML支持来标准化结构和缩进。
实用的YAML用例
基础设施与Kubernetes清单
- 在代码审查前格式化Kubernetes的`Deployment`、`Service`和`Ingress`清单。
- 标准化Helm图表中的`values.yaml`文件,使差异更清晰。
- 在不同环境中保持CRD、ConfigMap和Secret YAML的缩进一致。
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: my-app:latest
ports:
- containerPort: 80Docker Compose与本地开发配置
- 在文档或工单中分享前美化`docker-compose.yml`。
- 对齐服务、网络和卷的缩进以便于维护。
- 为博客文章和入门指南准备干净的YAML代码片段。
version: "3.9"
services:
web:
image: myapp:latest
ports:
- "8080:80"
environment:
- NODE_ENV=production
db:
image: postgres:16
environment:
POSTGRES_PASSWORD: exampleCI/CD流水线与自动化
- 格式化GitHub Actions工作流(`.github/workflows/*.yml`)。
- 清理GitLab CI(`.gitlab-ci.yml`)或Azure Pipelines YAML。
- 保持跨团队的自动化和基础设施即代码YAML可读性。
name: CI
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- run: npm ci
- run: npm test❓ Frequently Asked Questions
❓这个YAML格式化工具是做什么的?
YAML输入(通常是配置文件),并使用基于Prettier的YAML引擎以一致的缩进和换行方式重写。您的配置语义保持不变,但布局变得更容易阅读和审查。🧩支持哪些YAML功能?
YAML 1.2功能设计:映射、列表、锚点和别名、块标量(`|` / `>`)以及由`---`分隔的多文档文件。自定义标签和非常特殊的构造可能不被底层解析器完全支持。📏YAML输入有大小限制吗?
YAML,请从CLI或CI流水线运行Prettier或yq。🔐我的YAML会上传到服务器吗?
YAML插件运行,因此在正常操作下您的YAML不会离开客户端。在极少数情况下,如果缺少必需的解析器插件,工具可能会回退到安全的`/api/yaml-formatter`端点。即便如此,您的YAML也仅被临时处理而不会被存储。⚠️为什么有时会看到解析器错误?
YAML格式错误(例如缩进不一致、缺少`:`或列表项未对齐)或使用了捆绑解析器无法理解的语法。请验证缩进和结构,或尝试简化代码片段,然后重新运行格式化工具。📚这与我的本地Prettier设置有什么关系?
YAML引擎,类似于运行`prettier --parser yaml`。您可以用它进行快速的一次性修复,同时仍可依赖本地的`.prettierrc`和CLI命令进行全项目格式化。Pro Tips
使用相同的缩进风格规范化仓库中的所有YAML(Kubernetes、GitHub Actions、Docker Compose),使差异比较和审查更加容易。
对于像 `yes`、`no`、`on`、`off`、`0012` 这样的值要小心——如果希望它们被视为字符串而不是布尔值或类似八进制的数字,请用引号括起来。
使用此在线格式化工具快速清理文档或工单中的代码片段,然后在预提交钩子中依赖 `prettier` 或 `yq` 处理完整项目。
重构大型配置时,先进行格式化,这样语义更改就能在 Git 差异中清晰突出,而不是被缩进噪音淹没。
Additional Resources
Other Tools
- CSS 美化器
- HTML 美化器
- JavaScript 美化器
- PHP 美化器
- 颜色选择器
- 精灵图提取器
- Base64 解码器
- Base64 编码器
- C# 格式化器
- CSV 格式化器
- Dockerfile Formatter
- Elm 格式化器
- ENV 格式化器
- Go 格式化器
- GraphQL 格式化器
- HCL 格式化器
- INI 格式化器
- JSON 格式化器
- LaTeX 格式化器
- Markdown 格式化器
- Objective-C 格式化器
- Php Formatter
- Proto 格式化器
- Python 格式化器
- Ruby 格式化器
- Rust 格式化器
- Scala 格式化器
- Shell 脚本格式化器
- SQL 格式化器
- SVG 格式化工具
- Swift 格式化工具
- TOML 格式化工具
- Typescript Formatter
- XML 格式化工具
- Yarn 格式化工具
- CSS 压缩器
- Html Minifier
- Javascript Minifier
- JSON 压缩器
- XML 压缩器
- HTTP 头部查看器
- PDF 转文本
- 正则表达式测试器
- 搜索引擎排名检查器
- Whois 查询