Outras ferramentas
Formatador e validador YAML (YML)
Formate, valide, compacte e baixe YAML preservando comentários e localizando erros com precisão.
O que é o formatador YAML/YML?
YAML (YAML Ain't Markup Language) é um formato legível usado em configurações de aplicativos, CI/CD, Docker Compose e definições de API. Esta ferramenta formata, valida e compacta YAML ou YML no navegador sem enviar o conteúdo.
✨ Características Principais
- 🎯 Validação de Formato: Verifica erros de sintaxe YAML e fornece dicas detalhadas
- 🎨 Embelezamento de Formato: Formata automaticamente o conteúdo YAML com indentação e formato
- 🗜️ Compressão de Conteúdo: Remove espaços extras e comentários para reduzir o tamanho do arquivo
- 📋 Cópia com Um Clique: Resultados formatados podem ser copiados diretamente para uso
- 🔧 Localização de Erros: Localiza com precisão a posição de erros de sintaxe
- 💾 Download YAML: Salva o resultado formatado como arquivo
.yaml
Como usar
- Cole YAML ou YML no editor.
- Escolha indentação de dois ou quatro espaços e a largura da linha.
- Selecione Formatar YAML, Compactar YAML ou Validar.
- Copie o resultado ou baixe como arquivo
.yaml.
Casos de uso comuns
- Padronizar estilo antes de publicar
- Identificar problemas de estrutura ou sintaxe
- Mostrar trechos limpos na documentação
📖 Exemplos de Uso
Exemplo de Formatação
YAML Original:
name:ToolMi
version:1.0.0
features:
- format
- validate
- compress
config:
debug:true
port:3000
Após Formatação:
name: ToolMi
version: 1.0.0
features:
- format
- validate
- compress
config:
debug: true
port: 3000
Exemplo de Estrutura Complexa
YAML de Entrada:
database:
host: localhost
port: 5432
credentials:
username: admin
password: secret
pools:
- name: read_pool
size: 10
- name: write_pool
size: 5
Após Validação e Embelezamento:
database:
host: localhost
port: 5432
credentials:
username: admin
password: secret
pools:
- name: read_pool
size: 10
- name: write_pool
size: 5
🎯 Cenários de Aplicação
1. Formatação de arquivos de configuração YAML (YML) de aplicações
Organizando e validando arquivos de configuração de aplicação:
# Arquivo de configuração de aplicação (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. Formatação de configurações YAML (YML) do Docker Compose
Gerenciando configuração de orquestração de contêineres 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. Formatação YAML (YML) para pipelines CI/CD
Configuração de fluxo de trabalho do GitHub Actions:
# .github/workflows/deploy.yml
name: Implantação para Produção
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 do 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 dependências
run: npm ci
- name: Executar testes
run: npm test
- name: Executar linting
run: npm run lint
build:
needs: test
runs-on: ubuntu-latest
steps:
- name: Checkout do código
uses: actions/checkout@v3
- name: Construir imagem Docker
run: |
docker build -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest .
- name: Push para registro
run: |
echo ${{ secrets.GITHUB_TOKEN }} | docker login ${{ env.REGISTRY }} -u ${{ github.actor }} --password-stdin
docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
4. Formatação de manifests Kubernetes em YAML (YML)
Arquivos de configuração de implantação 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
🔧 Detalhes Técnicos
Regras de Sintaxe YAML
Regras básicas de sintaxe YAML:
Regras de Indentação:
- Use espaços para indentação, tabulações não são permitidas
- Elementos no mesmo nível devem ser alinhados à esquerda
- Elementos filhos devem ser mais indentados que elementos pais
Tipos de Dados:
- Strings: Podem não ter aspas, caracteres especiais precisam de aspas
- Números: Inteiros e números de ponto flutuante
- Booleanos: true/false, yes/no, on/off
- Valores nulos: null, ~, ou vazio
Tipos de Coleção:
- Arrays: Use
-para indicar itens de lista - Objetos: Use
key: valuepara representar pares chave-valor - Aninhamento: Suporta níveis arbitrários de estruturas aninhadas
Erros Comuns
Erros comuns que o formatador YAML pode detectar:
Erros de Indentação:
# Exemplo errado
config:
debug: true
port: 3000 # Indentação inconsistente
# Exemplo correto
config:
debug: true
port: 3000
Problemas de Aspas:
# Exemplo errado
message: It's a test # Aspa simples não escapada
# Exemplo correto
message: "It's a test"
# ou
message: 'It''s a test'
Formato de Lista:
# Exemplo errado
features:
- format
- validate # Erro de indentação
# Exemplo correto
features:
- format
- validate
💡 Dicas de Uso
- Indentação Consistente: Sempre use o mesmo número de espaços para indentação (2 espaços recomendados)
- Uso de Aspas: Cerque strings contendo caracteres especiais com aspas
- Padrões de Comentários: Use
#para adicionar comentários, adicione espaço antes dos comentários - Strings Multilinha: Use
|ou>para manipular texto multilinha
⚠️ Notas Importantes
- Proibição de Tabulações: YAML não permite tabulações, apenas espaços podem ser usados
- Sensibilidade à Indentação: Erros de indentação causarão falhas de análise
- Caracteres Especiais: Dois pontos, aspas e outros caracteres especiais precisam de manipulação adequada
- Formato de Codificação: Certifique-se de que os arquivos usam codificação UTF-8
🚀 Como Começar
- Entrada YAML: Cole o conteúdo YAML a ser processado na caixa de entrada
- Escolher Operação: Clique nos botões "Formatar", "Validar" ou "Comprimir"
- Ver Resultados: Verifique o YAML processado na caixa de saída
- Copiar ou Baixar: Copie o resultado ou salve como
formatted.yaml - Corrigir Erros: Corrija problemas de sintaxe baseados em dicas de erro
Dica: Esta ferramenta processa localmente no lado do cliente e não envia conteúdo YAML para o servidor, garantindo privacidade e segurança dos seus arquivos de configuração.
❓ Perguntas frequentes
P1: Por que o resultado está incorreto?
R: Verifique o formato de entrada e as opções, e teste o exemplo se houver.
P2: E se a entrada for muito grande?
R: Divida os dados em partes menores para obter resultados mais estáveis.
P3: Como salvo a saída?
R: Clique no botão de download para salvar diretamente formatted.yaml.