Visualizador e Formatador de YAML Online

Valide, formate e veja YAML em árvore. Aponta linha e coluna do erro de indentação, reindenta mantendo comentários e aceita vários documentos.

Validar, formatar e visualizar YAML

Cole o YAML abaixo. A ferramenta diz se ele é válido, mostra onde está cada erro, exibe a estrutura em uma árvore que abre e fecha e devolve o texto reindentado, com os comentários no lugar.

A validação acontece enquanto você digita, no seu navegador: o YAML não é enviado a nenhum servidor.

Como usar

  1. Cole o texto, clique em Abrir arquivo (.yaml ou .yml) ou carregue o Exemplo.
  2. Veja o resultado da validação logo abaixo. Em cada erro, Ir para a linha seleciona o trecho no campo de texto.
  3. Na aba Árvore, abra e feche os níveis; clique em um item para ver o caminho até ele, como spec.template.spec.containers[0].image, e copiar o caminho ou o valor.
  4. Na aba Formatado, escolha 2 ou 4 espaços, se quer as chaves em ordem alfabética e se os itens de lista ficam recuados. Copie, baixe ou use o resultado como nova entrada.

O texto fica no seu navegador: nada é enviado, o que permite conferir arquivos com segredos e endereços internos.

Por que YAML dá tanto erro de indentação

Em YAML, a estrutura é a indentação. Não há chaves nem colchetes para fechar: o que define que porta pertence a servidor é a quantidade de espaços no começo da linha.

servidor:
  host: exemplo.com
  porta: 8080

Daí vêm os erros mais comuns, que a ferramenta identifica e explica:

Tab no lugar de espaços

A especificação proíbe o caractere de tabulação na indentação. O problema é que Tab e espaços são iguais na tela. A mensagem aponta a linha; a solução é trocar por espaços e configurar o editor para inserir espaços ao apertar Tab.

Itens do mesmo nível em colunas diferentes

servidor:
    host: exemplo.com
  porta: 8080

porta não está alinhada com host nem com servidor, então o analisador não sabe a quem ela pertence. Não importa se você usa 2 ou 4 espaços, desde que irmãos comecem na mesma coluna.

Uma linha mais recuada do que deveria

Se a linha de baixo tem espaços a mais, o YAML a entende como continuação do valor anterior, e o erro aparece como “dois : no mesmo valor”. O mesmo erro surge quando um texto contém dois-pontos seguido de espaço: titulo: Aviso: leia precisa ser titulo: "Aviso: leia".

Chave duplicada

Duas chaves iguais no mesmo mapa são um erro pela especificação. Vários programas aceitam e ficam com a última, o que esconde enganos de copiar e colar. Aqui a duplicata é sempre apontada.

Aspas e escapes

Aspas que abrem e não fecham fazem o erro aparecer várias linhas abaixo. E, dentro de aspas duplas, a barra invertida inicia um escape: "C:\Users" é inválido. Entre aspas simples, nada é escapado.

Quando há vários erros, corrija o primeiro e valide de novo: os seguintes costumam ser consequência dele.

O que a formatação muda (e o que não muda)

A formatação reescreve o documento com indentação uniforme e espaços normalizados (chave: valor vira chave: valor). Ela mantém:

  • comentários, tanto os de linha inteira quanto os do fim da linha;
  • linhas em branco entre blocos;
  • âncoras (&nome), aliases (*nome) e tags;
  • o estilo de cada valor: o que estava entre aspas continua entre aspas, blocos | e > continuam blocos, e listas escritas como [a, b] continuam em uma linha.

Com Ordenar chaves, cada comentário acompanha a chave que vem logo abaixo dele — inclusive um comentário colado na primeira linha do arquivo. Para mantê-lo no topo, deixe uma linha em branco depois dele. Um YAML com erro não é formatado: reindentar um texto que o analisador não entendeu poderia mudar o significado.

Vários documentos no mesmo arquivo

Uma linha com --- separa documentos. É assim que um único arquivo guarda, por exemplo, um Deployment e um Service do Kubernetes. A árvore mostra cada documento separadamente, e o texto formatado mantém os separadores. Âncoras não atravessam documentos: um *alias só enxerga âncoras definidas antes dele no mesmo documento.

YAML 1.2 e as palavras yes, no, on, off

A ferramenta segue o YAML 1.2, em que só true e false são booleanos. Na versão 1.1, yes, no, on e off também eram, e várias bibliotecas ainda se comportam assim. Quando o seu arquivo tem uma dessas palavras sem aspas, aparece um aviso com a linha: o valor é texto aqui, mas pode ser lido como booleano por outro programa. O exemplo clássico é a sigla NO, da Noruega, virar false. Na dúvida, use aspas para texto e true/false para booleanos.

Na árvore, cada valor aparece com o tipo que foi realmente interpretado — texto entre aspas, números, booleanos e null em cores diferentes —, o que ajuda a notar um "8080" que deveria ser número ou uma versão 1.10 lida como o número 1.1.

Limites

O campo aceita até 2 milhões de caracteres. Em documentos muito grandes, Expandir tudo abre apenas os primeiros níveis, e mapas e listas longos são mostrados de 100 em 100 itens, para a página não travar. Na árvore, aliases aparecem expandidos; referências circulares não podem ser desenhadas, mas o texto é formatado normalmente. A ferramenta verifica a sintaxe do YAML, não as regras de quem vai ler o arquivo: ela não sabe se um campo é obrigatório no Kubernetes ou no GitHub Actions.

Perguntas frequentes

YAML deve usar 2 ou 4 espaços? Qualquer quantidade funciona, desde que seja consistente dentro de cada bloco. Dois espaços é a convenção mais comum em Kubernetes, Docker Compose e pipelines de CI.

A formatação apaga meus comentários? Não. Comentários, linhas em branco e âncoras são preservados.

Posso validar docker-compose.yml e manifestos do Kubernetes? Sim, quanto à sintaxe. A validação dos campos específicos de cada ferramenta precisa ser feita por ela (docker compose config, kubectl apply --dry-run).

Por que a árvore mostra “1.1” se eu escrevi 1.10? Porque, sem aspas, 1.10 é um número decimal, e o zero final não significa nada. Versões devem ficar entre aspas: "1.10".

Qual a diferença entre | e >? Os dois iniciam um texto de várias linhas. Com |, as quebras de linha são mantidas; com >, linhas seguidas são unidas por um espaço.

Ferramentas relacionadas