推荐工具
YAML(YML)格式化与验证工具
在线格式化、验证、压缩和下载 YAML,保留注释并精确定位语法错误。
什么是 YAML/YML 格式化工具?
YAML(YAML Ain't Markup Language)是一种便于阅读的数据格式,常用于应用配置、CI/CD、Docker Compose 和 API 定义。本工具可在浏览器本地格式化、验证和压缩 YAML 或 YML,不会上传输入内容。
如何使用
- 将 YAML 或 YML 粘贴到输入编辑器。
- 选择 2 或 4 空格缩进以及行宽。
- 点击“格式化 YAML”“压缩 YAML”或“验证”。
- 复制结果或下载
.yaml文件。
✨ 主要特性
- 🎯 格式验证:检查 YAML 语法错误并提供详细提示
- 🎨 格式美化:自动缩进和格式化 YAML 内容
- 🗜️ 内容压缩:移除多余空格和注释,压缩文件大小
- 📋 一键复制:格式化结果可直接复制使用
- 🔧 错误定位:精确定位语法错误位置
- 💾 文件下载:将格式化结果保存为
.yaml文件
📖 使用示例
格式化示例
原始 YAML:
name:工具迷
version:1.0.0
features:
- 格式化
- 验证
- 压缩
config:
debug:true
port:3000
格式化后:
name: 工具迷
version: 1.0.0
features:
- 格式化
- 验证
- 压缩
config:
debug: true
port: 3000
复杂结构示例
输入 YAML:
database:
host: localhost
port: 5432
credentials:
username: admin
password: secret
pools:
- name: read_pool
size: 10
- name: write_pool
size: 5
验证和美化后:
database:
host: localhost
port: 5432
credentials:
username: admin
password: secret
pools:
- name: read_pool
size: 10
- name: write_pool
size: 5
🎯 应用场景
1. 应用 YAML(YML) 配置文件格式化
整理和验证应用配置文件:
# 应用配置文件 (config.yml)
app:
name: 工具迷
version: 1.0.0
environment: production
server:
host: 0.0.0.0
port: 3000
ssl:
enabled: true
cert_path: /etc/ssl/certs/app.crt
key_path: /etc/ssl/private/app.key
database:
type: postgresql
host: localhost
port: 5432
name: toolmi_db
username: ${DB_USER}
password: ${DB_PASSWORD}
pool:
min_connections: 2
max_connections: 10
redis:
host: localhost
port: 6379
password: ${REDIS_PASSWORD}
db: 0
logging:
level: info
format: json
outputs:
- type: file
path: /var/log/app.log
- type: console
2. Docker Compose YAML(YML) 配置文件格式化
管理 Docker 容器编排配置:
# docker-compose.yml
version: '3.8'
services:
web:
build: .
ports:
- "3000:3000"
environment:
- NODE_ENV=production
- DB_HOST=database
depends_on:
- database
- redis
volumes:
- ./uploads:/app/uploads
networks:
- app-network
database:
image: postgres:13
environment:
POSTGRES_DB: toolmi_db
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- app-network
redis:
image: redis:6-alpine
command: redis-server --requirepass ${REDIS_PASSWORD}
volumes:
- redis_data:/data
networks:
- app-network
volumes:
postgres_data:
redis_data:
networks:
app-network:
driver: bridge
3. CI/CD 流水线 YAML(YML) 配置格式化
GitHub Actions 工作流配置:
# .github/workflows/deploy.yml
name: 部署到生产环境
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
NODE_VERSION: '18'
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: 检出代码
uses: actions/checkout@v3
- name: 设置 Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: 安装依赖
run: npm ci
- name: 运行测试
run: npm test
- name: 运行代码检查
run: npm run lint
build:
needs: test
runs-on: ubuntu-latest
steps:
- name: 检出代码
uses: actions/checkout@v3
- name: 构建 Docker 镜像
run: |
docker build -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest .
- name: 推送到注册表
run: |
echo ${{ secrets.GITHUB_TOKEN }} | docker login ${{ env.REGISTRY }} -u ${{ github.actor }} --password-stdin
docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
4. Kubernetes YAML(YML) 清单格式化
Kubernetes 部署配置文件:
# deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: toolmi-app
labels:
app: toolmi
spec:
replicas: 3
selector:
matchLabels:
app: toolmi
template:
metadata:
labels:
app: toolmi
spec:
containers:
- name: app
image: toolmi/app:latest
ports:
- containerPort: 3000
env:
- name: NODE_ENV
value: "production"
- name: DB_HOST
valueFrom:
secretKeyRef:
name: app-secrets
key: db-host
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "500m"
livenessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /ready
port: 3000
initialDelaySeconds: 5
periodSeconds: 5
---
apiVersion: v1
kind: Service
metadata:
name: toolmi-service
spec:
selector:
app: toolmi
ports:
- protocol: TCP
port: 80
targetPort: 3000
type: LoadBalancer
🔧 技术详解
YAML 语法规则
YAML 的基本语法规则:
缩进规则:
- 使用空格进行缩进,不能使用制表符
- 相同层级的元素必须左对齐
- 子元素必须比父元素多缩进
数据类型:
- 字符串:可以不用引号,特殊字符需要引号
- 数字:整数和浮点数
- 布尔值:true/false、yes/no、on/off
- 空值:null、~、或空
集合类型:
- 数组:使用
-表示列表项 - 对象:使用
key: value表示键值对 - 嵌套:支持任意层级的嵌套结构
常见错误
YAML 格式化工具可以检测的常见错误:
缩进错误:
# 错误示例
config:
debug: true
port: 3000 # 缩进不一致
# 正确示例
config:
debug: true
port: 3000
引号问题:
# 错误示例
message: It's a test # 单引号未转义
# 正确示例
message: "It's a test"
# 或
message: 'It''s a test'
列表格式:
# 错误示例
features:
- format
- validate # 缩进错误
# 正确示例
features:
- format
- validate
💡 使用技巧
- 缩进一致:始终使用相同数量的空格进行缩进(推荐2个空格)
- 引号使用:包含特殊字符的字符串使用引号包围
- 注释规范:使用
#添加注释,注释前加空格 - 多行字符串:使用
|或>处理多行文本
⚠️ 注意事项
- 制表符禁用:YAML 不允许使用制表符,只能使用空格
- 缩进敏感:缩进错误会导致解析失败
- 特殊字符:冒号、引号等特殊字符需要正确处理
- 编码格式:确保文件使用 UTF-8 编码
🚀 开始使用
- 输入 YAML:在输入框中粘贴要处理的 YAML 内容
- 选择操作:点击"格式化"、"验证"或"压缩"按钮
- 查看结果:在输出框中查看处理后的 YAML
- 复制或下载:复制结果,或保存为
formatted.yaml - 错误修复:根据错误提示修复语法问题
提示:本工具在客户端本地进行处理,不会上传您的 YAML 内容到服务器,确保数据安全。
❓ 常见问题 FAQ
Q1:格式化失败或报错?
A:请确认YAML,YML语法正确,必要时先校验。
Q2:可以压缩成一行吗?
A:可以。点击“压缩 YAML”会使用流式语法输出,并移除注释。
Q3:如何保留注释?
A:使用普通格式化即可保留注释;压缩模式会移除注释。