Como usar o formatador de YAML
- Cole seu YAML na caixa de entrada, por exemplo um manifesto do Kubernetes, um arquivo do Docker Compose ou um pipeline de CI.
- Clique em Validar para checar a sintaxe. Os erros são informados com a linha e a coluna em que o analisador parou.
- Clique em Formatar para reescrever o documento com indentação e aspas consistentes.
- Clique em Converter para JSON para ver os mesmos dados em JSON.
- 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 aspas | Risco | Forma segura |
|---|---|---|
version: 1.10 | Vira o número 1,1 | version: "1.10" |
zip: 01234 | O zero à esquerda pode se perder ou ser lido como octal | zip: "01234" |
country: NO | Booleano em analisadores YAML 1.1 | country: "NO" |
enabled: yes | Booleano no 1.1, string no 1.2 | enabled: 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.
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