Loading…

关于此 YAML 格式化器 在线 YAML 格式化器与美化器

正在处理杂乱的 `values.yaml`、`docker-compose.yml` 或 GitHub Actions 工作流?此 YAML 格式化器可标准化缩进和换行,同时保留锚点、别名和块标量。粘贴您的 YAML,调整缩进设置,几秒钟内即可复制回整洁、可供审查的配置。🚀

本 YAML 格式化工具的主要特点

  • 基于 Prettier 的格式化,专为 YAML 1.2 配置文件优化
  • 一致的缩进,可配置缩进大小(1–8)及空格与制表符
  • 可调整的换行/行长度,使长键和值保持可读性
  • 正确处理锚点、别名、布尔值作为字符串和多行块标量
  • 支持 `.yaml` 和 `.yml` 文件,适用于 Kubernetes、Docker Compose、CI 流水线等
  • 从编辑器粘贴 YAML 或将配置文件拖放至格式化工具
  • 一键复制格式化后的 YAML 回编辑器或仓库
  • 格式化主要在浏览器客户端运行;仅在缺少必要解析器/插件时使用安全服务器备用方案

🔧 如何格式化 YAML 配置文件 for yaml-formatter

1

1. 粘贴或上传您的 YAML

复制任何 YAML 片段(Kubernetes 清单、`docker-compose.yml`、GitHub Actions 工作流、Ansible 剧本等)并粘贴到编辑器中,或拖放 `.yaml` / `.yml` 文件。

2

2. 调整缩进和换行

选择使用空格或制表符,设置缩进大小(1–8 空格),并调整换行/行长度以匹配团队风格。换行长度为 `0` 时,通过使用非常大的内部 `printWidth` 有效禁用换行。

3

3. 运行格式化工具

点击 **格式化** 按钮。基于 Prettier 的 YAML 引擎重写您的配置,保持一致的缩进,同时保留锚点、别名和块标量,确保语义不变。

4

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 片段使用了极其特殊的语法或捆绑的 Prettier YAML 解析器无法理解的自定义标签,您可能会遇到解析错误。在这种情况下,请简化该片段或在本地使用您自己的工具链运行格式化。

缩进、换行长度与输出样式

格式化器提供关键选项,以便您尽可能匹配项目的风格。

设置选项实用建议
缩进样式空格 / 制表符大多数 YAML 风格指南推荐使用空格;仅当团队明确偏好时使用制表符。
缩进大小1–8 个空格Kubernetes 和 Docker 常用 2 个空格;4 个空格可提供更清晰的视觉区分。
换行 / 行长度0–120 列`0` 禁用换行(使用非常大的内部 `printWidth`),80–100 保持差异紧凑。
文件扩展名.yaml, .yml匹配工具配置中的 `fileExtensions` 和 `acceptedFileTypes`。
将这些选项与您仓库的 `.prettierrc` 或 `.editorconfig` 对齐,以便在线格式化与本地开发和 CI 检查保持一致。

限制与性能

针对浏览器标签页中 YAML 配置的交互式格式化进行了优化。

参数限制 / 行为备注
最大文本输入大小≈ 2 MB (~2,000,000 字符)在格式化函数内部强制执行的安全限制。
最大文件上传大小≈ 5 MB受限于UI的`maxFileSize`设置,以确保便捷性和可靠性。
格式化超时约25秒长时间运行的操作会被中止,以防止浏览器卡顿。
主要执行方式客户端通过`runPrettier`和Prettier YAML插件直接在浏览器中运行。
服务器回退仅在解析器/插件错误时如果缺少必需的解析器插件,可以使用安全的`/api/yaml-formatter`端点作为回退方案。
对于大型YAML包(如Helm图表、巨型CRD库等),建议使用集成到本地工作流或CI流水线中的CLI工具,如`prettier`或`yq`。

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支持来标准化结构和缩进。

将此在线格式化器与CI流水线中的`prettier --check`或`yq`步骤结合使用,确保仓库中的所有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: 80

Docker 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: example

CI/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输入有大小限制吗?

为了稳定性和浏览器性能,文本输入限制在约2MB(约2,000,000字符),上传文件限制在约5MB。对于更大的代码库或生成的YAML,请从CLI或CI流水线运行Prettier或yq。

🔐我的YAML会上传到服务器吗?

格式化主要通过浏览器中的`runPrettier`和Prettier YAML插件运行,因此在正常操作下您的YAML不会离开客户端。在极少数情况下,如果缺少必需的解析器插件,工具可能会回退到安全的`/api/yaml-formatter`端点。即便如此,您的YAML也仅被临时处理而不会被存储。

⚠️为什么有时会看到解析器错误?

解析器错误通常意味着YAML格式错误(例如缩进不一致、缺少`:`或列表项未对齐)或使用了捆绑解析器无法理解的语法。请验证缩进和结构,或尝试简化代码片段,然后重新运行格式化工具。

📚这与我的本地Prettier设置有什么关系?

此工具底层使用基于Prettier的YAML引擎,类似于运行`prettier --parser yaml`。您可以用它进行快速的一次性修复,同时仍可依赖本地的`.prettierrc`和CLI命令进行全项目格式化。

Pro Tips

Best Practice

使用相同的缩进风格规范化仓库中的所有YAML(Kubernetes、GitHub Actions、Docker Compose),使差异比较和审查更加容易。

Best Practice

对于像 `yes`、`no`、`on`、`off`、`0012` 这样的值要小心——如果希望它们被视为字符串而不是布尔值或类似八进制的数字,请用引号括起来。

Best Practice

使用此在线格式化工具快速清理文档或工单中的代码片段,然后在预提交钩子中依赖 `prettier` 或 `yq` 处理完整项目。

Best Practice

重构大型配置时,先进行格式化,这样语义更改就能在 Git 差异中清晰突出,而不是被缩进噪音淹没。

Additional Resources

Other Tools