Formatador de YAML
Formate YAML com uma largura de indentação consistente ou converta-o para JSON. Detecta tabulações misturadas e inconsistências de indentação.
O que é um formatador de YAML
Um formatador de YAML pega um documento com indentação irregular e o reescreve com uma indentação uniforme de 2 ou 4 espaços, validando a sintaxe ao mesmo tempo. Arquivos de configuração tendem a acumular inconsistências de indentação depois de sucessivas cópias, colagens e edições manuais, e muitas vezes o primeiro sinal do problema só aparece bem depois, como um erro críptico do seu pipeline de CI/CD ou da ferramenta de gestão de configuração. Como esta ferramenta funciona inteiramente no seu navegador, você pode revisar arquivos de configuração sensíveis sem enviar o conteúdo para nenhum servidor externo.
Esta ferramenta usa um analisador leve desenvolvido internamente, voltado ao "subconjunto comum" normalmente usado em Docker Compose, GitHub Actions e manifestos do Kubernetes: mapeamentos, listas, coleções em linha e tipos escalares básicos. Ela não oferece suporte a recursos avançados como âncoras (&), aliases (*), múltiplos documentos ou escalares de bloco (|/>). Se você trabalha com YAML que depende desses recursos, vale combinar esta ferramenta com um analisador de especificação completa.
Como usar o formatador de YAML
- Cole o seu YAML Cole o YAML que deseja formatar no campo de entrada à esquerda. Se não tiver um exemplo à mão, clique em "Exemplo" para inserir um YAML de teste.
- Escolha o modo Selecione "Formatar e validar" para verificar a sintaxe e normalizar a indentação, ou "Converter para JSON" para transformar o conteúdo YAML em JSON.
- Escolha a largura da indentação Apenas no modo "Formatar e validar" você pode escolher 2 ou 4 espaços para a saída, de acordo com a convenção já adotada pelo seu projeto.
- Confira o resultado Se o YAML for válido, o resultado formatado (ou o JSON convertido) aparece à direita. Caso contrário, uma mensagem de erro com o número da linha é exibida para você ir direto ao problema.
- Copie o resultado Clique em "Copiar" para copiar a saída para a área de transferência e colá-la de volta no seu arquivo de configuração.
Dicas para aproveitar melhor
- Esta ferramenta usa um analisador leve desenvolvido internamente, com suporte a pares chave: valor, aninhamento, listas e a sintaxe em linha
[a, b, c]/{a: 1}. - Mesmo que você cole um YAML com indentação inconsistente (por exemplo, 3 ou 5 espaços), ele será reescrito com uma indentação uniforme de 2 ou 4 espaços, desde que seja analisado com sucesso.
- No modo "Converter para JSON" você pode visualizar o seu YAML convertido diretamente para JSON, útil para comparar com configurações de CI ou respostas de API.
- Se aparecer um erro, o número da linha é exibido, então verifique essa linha em busca de problemas de indentação ou um espaço faltando após os dois-pontos.
- O YAML proíbe indentação com tabulações. Ativar "converter tabulações em espaços" nas configurações do seu editor ajuda a evitar completamente esse problema.
Quando usar esta ferramenta
Verificação prévia de configurações de CI
Passe seus arquivos .yml do GitHub Actions ou GitLab CI por esta ferramenta antes de fazer o commit, para detectar indentação quebrada ou tabulações perdidas antes que o pipeline falhe por um erro de sintaxe.
Organização de manifestos do Kubernetes
Manifestos de Deployment e Service editados por várias pessoas costumam acabar com indentação inconsistente. Normalize-os conforme a convenção da equipe (por exemplo, 2 espaços) antes de enviá-los para revisão.
Validação de arquivos Docker Compose
Erros de indentação no docker-compose.yml costumam passar despercebidos até o contêiner falhar ao iniciar. Verificar antes a sintaxe e a consistência da indentação aqui traz mais tranquilidade.
Comparar YAML e JSON lado a lado
Quando você precisa trabalhar com a mesma configuração ou dados de API tanto em YAML quanto em JSON, o modo "Converter para JSON" permite ver o resultado da conversão e usá-lo com outras ferramentas baseadas em JSON ou validadores de esquema.
Glossário
- YAML
- Um acrônimo recursivo para "YAML Ain't Markup Language", um formato de serialização de dados que expressa estrutura hierárquica por meio de indentação. É amplamente usado em arquivos de configuração.
- Indentação
- O espaço em branco no início de uma linha, usado pelo YAML para expressar relações entre elemento pai e filho. Pela especificação, tabulações nunca podem ser usadas para indentação.
- Mapeamento
- Uma estrutura que representa dados como pares "chave: valor", equivalente a um array associativo ou objeto em outras linguagens.
- Lista (sequência)
- Uma estrutura que lista valores em ordem, em que cada item começa com um hífen e um espaço ("- ").
- Estilo de fluxo
- Uma forma de escrever mapeamentos e listas em linha, como
{a: 1}ou[a, b, c], sem depender da indentação. - Âncoras e aliases
- Um mecanismo em que o conteúdo definido com
&nomepode ser reutilizado em outro lugar com*nome, evitando repetir valores. Esta ferramenta não oferece suporte a isso. - Escalar de bloco
- Uma forma de escrever strings de várias linhas usando
|(que preserva as quebras de linha) ou>(que as converte em espaços). Esta ferramenta não oferece suporte a isso. - Problema da Noruega
- Uma armadilha bem conhecida do YAML em que valores sem aspas, como
noouyes, são interpretados como booleanos em vez de strings comuns.
Perguntas frequentes
|/>).no, yes, on ou off sem aspas é interpretado como booleano por muitas implementações de YAML, em vez de uma string comum (como o código do país da Noruega). Se quiser que seja tratado como string, use aspas, por exemplo "no".
Curiosidade — Por que o YAML se tornou o formato de configuração preferido
YAML (YAML Ain't Markup Language) é um formato de serialização de dados que surgiu em 2001. Como não exige tags de fechamento e parece muito mais simples que o XML, tornou-se a escolha padrão para arquivos de configuração de infraestrutura desde os anos 2010 — Docker Compose, GitHub Actions e manifestos do Kubernetes o utilizam.
Ainda assim, o design do YAML de "estrutura por indentação" é fácil de ler para humanos, mas também frágil: a indentação se quebra facilmente ao copiar e colar. Em particular, misturar tabulações e espaços pode fazer com que muitos analisadores produzam silenciosamente uma estrutura errada sem gerar erro algum, o que se torna uma fonte comum de erros de configuração não intencionais.
Há também uma armadilha bem conhecida chamada "problema da Noruega". Escrever o código do país no sem aspas é interpretado como o booleano false por muitas implementações de YAML. As diferenças entre YAML 1.1 e 1.2 sobre quais strings contam como booleanos também são uma fonte frequente de problemas de compatibilidade entre implementações.