Formatador e validador de YAML

RSS

Valide YAML, localize com precisão erros de indentação e de sintaxe, padronize a formatação ou converta para JSON, de forma privada no seu navegador.

Funciona 100% no seu navegador. Nada do que você cola é enviado ou armazenado.
Entrada YAML
Resultado
Pronto.

Como usar o formatador de YAML

  1. Cole seu YAML na caixa de entrada, por exemplo um manifesto do Kubernetes, um arquivo do Docker Compose ou um pipeline de CI.
  2. Clique em Validar para checar a sintaxe. Os erros são informados com a linha e a coluna em que o analisador parou.
  3. Clique em Formatar para reescrever o documento com indentação e aspas consistentes.
  4. Clique em Converter para JSON para ver os mesmos dados em JSON.
  5. Copie o resultado de volta para o seu projeto.

A ferramenta analisa YAML 1.2 com a biblioteca de código aberto js-yaml, inteiramente no seu navegador. Seus arquivos não são enviados nem armazenados em lugar nenhum, o que importa quando eles contêm nomes de host, credenciais ou outros segredos.

O que é YAML?

YAML ("YAML Ain't Markup Language") é um formato de serialização de dados feito para ser legível por pessoas. Em vez de colchetes e chaves, ele usa a indentação para mostrar a estrutura, um hífen (-) para itens de lista e pares chave: valor para mapeamentos. Também aceita comentários com #, textos de várias linhas e âncoras e aliases para reutilizar valores.

Desde o YAML 1.2, o formato foi projetado como um superconjunto do JSON, então quase qualquer documento JSON válido também é um YAML válido. Isso facilita a passagem de um para o outro: o YAML é agradável de escrever à mão, enquanto o JSON é o que a maioria das APIs e programas troca entre si.

Como os espaços em branco têm significado, um único espaço fora do lugar pode mudar a estrutura de um arquivo YAML sem gerar nenhum erro. Validar e reformatar mostra como o analisador realmente lê o seu documento, o que muitas vezes é o jeito mais rápido de achar um bug sutil.

Erros comuns em YAML e como corrigi-los

Tabs na indentação. O YAML proíbe caracteres de tabulação na indentação. Troque-os por espaços; a maioria dos editores faz isso automaticamente.

Indentação inconsistente. Itens do mesmo nível precisam estar exatamente alinhados. Neste exemplo, image está um espaço além do correto:

containers:
  - name: web
     image: nginx:1.27

Alinhe-o com name:

containers:
  - name: web
    image: nginx:1.27

Falta de espaço depois dos dois-pontos. port:8080 é lido como uma única string simples, não como uma chave com um valor. Escreva port: 8080.

Caracteres especiais em strings sem aspas. Um valor que começa com *, &, !, @, { ou [, ou que contém : ou #, precisa de aspas:

message: "Error: disk full"
pattern: "*.log"

Chaves duplicadas. Um mapeamento não pode conter a mesma chave duas vezes. Alguns analisadores mantêm o último valor em silêncio; o validador sinaliza o problema para que você perceba.

Tipagem implícita: a clássica surpresa do YAML

O YAML adivinha os tipos de valores sem aspas. No esquema básico do YAML 1.2, true e false são booleanos, null e ~ são nulos, e o que parece número é número. Os analisadores mais antigos, do YAML 1.1, iam além e tratavam yes, no, on e off como booleanos, e foi assim que o código de país NO, da Noruega, virou false numa história famosa. Ferramentas diferentes ainda discordam nesse ponto, então coloque entre aspas tudo o que precisa continuar sendo string:

Valor sem aspasRiscoForma segura
version: 1.10Vira o número 1,1version: "1.10"
zip: 01234O zero à esquerda pode se perder ou ser lido como octalzip: "01234"
country: NOBooleano em analisadores YAML 1.1country: "NO"
enabled: yesBooleano no 1.1, string no 1.2enabled: true

Dicas e boas práticas

  • Use dois espaços por nível; é o estilo mais comum em arquivos do Kubernetes, do Ansible e do GitHub Actions.
  • Use | para textos de várias linhas em que as quebras importam (scripts, certificados) e > quando as linhas devem se juntar em um único parágrafo.
  • Converter para JSON é um jeito confiável de confirmar a estrutura: se um valor cair no objeto errado, a saída em JSON deixa isso óbvio. Para conversões de ida e volta, use o Conversor JSON ↔ YAML.
  • Precisa arrumar o JSON depois? O Formatador e validador de JSON pode ordenar as chaves e minificá-lo.
Dica: A formatação remove os comentários, porque eles não fazem parte dos dados analisados. Guarde uma cópia do original se os seus comentários importam.

Perguntas frequentes

JSON é um YAML válido?

Para fins práticos, sim. O YAML 1.2 foi alinhado para que documentos JSON sejam YAML válido, e é por isso que você pode colar JSON nesta ferramenta e ele será interpretado.

Por que o YAML não permite tabs?

As tabulações aparecem com larguras diferentes em editores diferentes, então uma indentação que parece alinhada pode não estar. A especificação proíbe tabs na indentação para manter a estrutura sem ambiguidade.

Por que a formatação removeu meus comentários?

O formatador interpreta o YAML como dados e o imprime de novo. Comentários não são dados, então não sobrevivem a esse processo. Âncoras e aliases são resolvidos durante a análise, por isso podem voltar expandidos ou com nomes gerados.

Qual versão do YAML esta ferramenta suporta?

Ela usa o js-yaml, que segue o YAML 1.2. Arquivos escritos para analisadores YAML 1.1 costumam funcionar, mas valores como yes e no são tratados como strings.

Atualizado

Copiado para a área de transferência