Otras herramientas
Formateador y validador YAML (YML)
Formatea, valida, compacta y descarga YAML conservando comentarios y ubicando errores con precisión.
¿Qué es el formateador YAML/YML?
YAML (YAML Ain't Markup Language) es un formato legible usado en configuración de aplicaciones, CI/CD, Docker Compose y definiciones de API. Esta herramienta formatea, valida y compacta YAML o YML en el navegador sin subir el contenido.
Cómo usarlo
- Pega YAML o YML en el editor.
- Elige sangría de dos o cuatro espacios y el ancho de línea.
- Selecciona Formatear YAML, Compactar YAML o Validar.
- Copia el resultado o descárgalo como archivo
.yaml.
Casos de uso comunes
- Unificar estilo antes de publicar
- Detectar problemas de estructura o sintaxis
- Mostrar fragmentos limpios en documentación
✨ Características Clave
- 🎯 Validación de Formato: Verifica errores de sintaxis YAML y proporciona sugerencias detalladas
- 🎨 Embellimiento de Formato: Formatea automáticamente contenido YAML con indentación y formato
- 🗜️ Compresión de Contenido: Elimina espacios y comentarios innecesarios para comprimir el tamaño del archivo
- 📋 Copia con Un Clic: Los resultados de formato se pueden copiar directamente para usar
- 🔧 Localización de Errores: Localiza con precisión la posición de errores de sintaxis
- 💾 Descarga YAML: Guarda el resultado formateado como archivo
.yaml
📖 Ejemplos de Uso
Ejemplo de Formato
YAML Original:
name:ToolMi
version:1.0.0
features:
- format
- validate
- compress
config:
debug:true
port:3000
Después del Formato:
name: ToolMi
version: 1.0.0
features:
- format
- validate
- compress
config:
debug: true
port: 3000
Ejemplo de Estructura Compleja
YAML de Entrada:
database:
host: localhost
port: 5432
credentials:
username: admin
password: secret
pools:
- name: read_pool
size: 10
- name: write_pool
size: 5
Después de Validación y Embellimiento:
database:
host: localhost
port: 5432
credentials:
username: admin
password: secret
pools:
- name: read_pool
size: 10
- name: write_pool
size: 5
🎯 Escenarios de Aplicación
1. Formateo de archivos de configuración YAML (YML) de aplicaciones
Organizando y validando archivos de configuración de aplicaciones:
# Archivo de configuración de aplicación (config.yml)
app:
name: ToolMi
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. Formateo de configuraciones YAML (YML) de Docker Compose
Gestionando configuración de orquestación de contenedores 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. Formateo YAML (YML) para pipelines CI/CD
Configuración de flujo de trabajo de GitHub Actions:
# .github/workflows/deploy.yml
name: Despliegue a Producción
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: Checkout código
uses: actions/checkout@v3
- name: Configurar Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Instalar dependencias
run: npm ci
- name: Ejecutar pruebas
run: npm test
- name: Ejecutar linting
run: npm run lint
build:
needs: test
runs-on: ubuntu-latest
steps:
- name: Checkout código
uses: actions/checkout@v3
- name: Construir imagen Docker
run: |
docker build -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest .
- name: Push a registro
run: |
echo ${{ secrets.GITHUB_TOKEN }} | docker login ${{ env.REGISTRY }} -u ${{ github.actor }} --password-stdin
docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
4. Formateo de manifiestos YAML (YML) de Kubernetes
Archivos de configuración de despliegue 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
🔧 Detalles Técnicos
Reglas de Sintaxis YAML
Reglas básicas de sintaxis de YAML:
Reglas de Indentación:
- Usar espacios para indentación, no se permiten tabs
- Elementos al mismo nivel deben estar alineados a la izquierda
- Elementos hijos deben estar más indentados que elementos padres
Tipos de Datos:
- Cadenas: Pueden no tener comillas, caracteres especiales necesitan comillas
- Números: Enteros y números de punto flotante
- Booleanos: true/false, yes/no, on/off
- Valores nulos: null, ~, o vacío
Tipos de Colección:
- Arrays: Usar
-para indicar elementos de lista - Objetos: Usar
key: valuepara representar pares clave-valor - Anidamiento: Soporta niveles arbitrarios de estructuras anidadas
Errores Comunes
Errores comunes que el formateador YAML puede detectar:
Errores de Indentación:
# Ejemplo incorrecto
config:
debug: true
port: 3000 # Indentación inconsistente
# Ejemplo correcto
config:
debug: true
port: 3000
Problemas de Comillas:
# Ejemplo incorrecto
message: It's a test # Comilla simple no escapada
# Ejemplo correcto
message: "It's a test"
# o
message: 'It''s a test'
Formato de Lista:
# Ejemplo incorrecto
features:
- format
- validate # Error de indentación
# Ejemplo correcto
features:
- format
- validate
💡 Consejos de Uso
- Indentación Consistente: Siempre usar el mismo número de espacios para indentación (se recomiendan 2 espacios)
- Uso de Comillas: Rodear cadenas que contienen caracteres especiales con comillas
- Estándares de Comentarios: Usar
#para agregar comentarios, agregar espacio antes de comentarios - Cadenas Multilínea: Usar
|o>para manejar texto multilínea
⚠️ Notas Importantes
- Prohibición de Tabs: YAML no permite tabs, solo se pueden usar espacios
- Sensible a Indentación: Errores de indentación causarán fallos de análisis
- Caracteres Especiales: Dos puntos, comillas y otros caracteres especiales necesitan manejo adecuado
- Formato de Codificación: Asegurar que los archivos usen codificación UTF-8
🚀 Cómo Empezar
- Entrada YAML: Pegue el contenido YAML a procesar en el cuadro de entrada
- Elegir Operación: Haga clic en los botones "Formatear", "Validar" o "Comprimir"
- Ver Resultados: Verifique el YAML procesado en el cuadro de salida
- Copiar o Descargar: Copie el resultado o guárdelo como
formatted.yaml - Corregir Errores: Corrija problemas de sintaxis basados en sugerencias de error
Consejo: Esta herramienta procesa localmente en el lado del cliente y no sube contenido YAML al servidor, garantizando seguridad de datos.
❓ Preguntas frecuentes
P1: ¿Falló el formateo?
R: Revisa la sintaxis antes de formatear.
P2: ¿Puedo minificar?
R: Sí. Compactar YAML usa el estilo de flujo y elimina los comentarios.
P3: ¿Mantener comentarios?
R: El formato normal conserva los comentarios; solo el modo compacto los elimina.