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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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 &nome pode 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 no ou yes, são interpretados como booleanos em vez de strings comuns.

Perguntas frequentes

O YAML é adequado para arquivos de configuração que humanos editam e revisam manualmente (configurações de CI, manifestos do Kubernetes, etc.), pois suporta comentários e é mais legível. O JSON é mais adequado para comunicação entre programas, como respostas de API, por ser menos ambíguo e mais rápido de analisar.

A especificação do YAML proíbe o uso de tabulações para indentação. A maioria dos analisadores tratará isso como um erro de sintaxe e interromperá o processamento. O mais seguro é configurar seu editor para converter automaticamente tabulações em espaços.

Não. Esta ferramenta é voltada ao "subconjunto comum" normalmente usado em Docker Compose, GitHub Actions e arquivos semelhantes (mapeamentos, listas, coleções em linha e tipos escalares básicos), e não suporta recursos avançados como âncoras, aliases, múltiplos documentos ou escalares de bloco (|/>).

É uma armadilha bem conhecida em que escrever 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".
Tool-kun

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.