O que o formatador YAML faz
O YAML é o formato por trás dos arquivos do Docker Compose, dos manifestos do Kubernetes, dos workflows do GitHub Actions, dos playbooks do Ansible e de muitas configurações de aplicativos. A estrutura dele vem do recuo, então um único espaço fora do lugar pode mudar o significado de um arquivo ou travar um deploy. Esta ferramenta reescreve o seu YAML com recuo e espaçamento consistentes e o confere com um parser rigoroso, para que os problemas apareçam aqui, e não no seu pipeline.
São duas ações:
- Formatar padroniza o recuo, os espaços depois dos dois-pontos e dos hifens e o espaçamento dentro de
[ ]e{ }. - Validar analisa o arquivo e aponta o primeiro erro, ou mostra um resumo curto quando ele é válido.
Como usar
- Cole o YAML na caixa da esquerda. Ele é formatado assim que você cola. Você também pode usar Abrir arquivo para arquivos
.yamle.yml, ou Exemplo para ver um exemplo. - Escolha um Recuo de 2 ou 4 espaços e uma Largura da linha.
- Ligue Aspas simples se o seu projeto prefere
'texto'a"texto". - Clique em Formatar ou Validar. Ctrl+Enter repete a última ação.
- Clique em Copiar, ou em Baixar para salvar um arquivo
.yaml.
Antes e depois
Um arquivo do Docker Compose com espaçamento irregular e recuo de 4 espaços:
version: "3.8"
services:
web:
image: "nginx:latest"
ports:
- "80:80"
environment:
- DEBUG=false
db:
image: postgres:16
Depois de Formatar com 2 espaços:
version: "3.8"
services:
web:
image: "nginx:latest"
ports:
- "80:80"
environment:
- DEBUG=false
db:
image: postgres:16
As coleções em linha ganham espaçamento uniforme. tags: [ api, v2 ] e limits: {cpu: 1, memory: 512} viram:
tags: [api, v2]
limits: { cpu: 1, memory: 512 }
Os comentários sobrevivem. Os espaços extras antes de um comentário no fim da linha são arrumados, mas o comentário continua na linha dele:
# Database settings
db:
host: localhost # local only
port: 5432
Com Aspas simples ligado, name: "web" vira name: 'web'. Uma string que tem apóstrofo, como "it's here", mantém as aspas duplas para não precisar de escape.
Erros que o validador encontra
Os parsers de YAML das diferentes ferramentas não são igualmente rigorosos. Este aponta problemas que algumas ferramentas deixam passar. Mensagens reais da ferramenta (o texto do erro vem do parser de YAML e fica em inglês):
| Problema | Mensagem |
|---|---|
| A mesma chave duas vezes | Linha 3, coluna 1: Map keys must be unique |
| Uma tabulação usada no recuo | Linha 2, coluna 1: Tabs are not allowed as indentation |
| Uma linha com um espaço a mais de recuo | Linha 2, coluna 9: Nested mappings are not allowed in compact mappings |
A verificação de chaves duplicadas é a que mais importa. Em um arquivo como name: web, port: 80, name: api, muitos carregadores mantêm só o último name sem nenhum aviso. Clique em Mostrar na entrada para ir até a linha.
Para um arquivo válido com dois documentos separados por ---, Validar informa: YAML válido. 2 documentos..
Dicas e limites
- O formatador não reordena chaves nem muda valores.
yes,one010ficam como você escreveu. - Strings longas não são quebradas de novo. Os blocos dobrados (
>) e literais (|) mantêm o conteúdo. - Âncoras e aliases (
&name,*name) ficam como foram escritos. - Textos em português com acentos podem ficar sem aspas no YAML, desde que o arquivo esteja salvo em UTF-8.
- O YAML não tem uma forma minificada de uso comum, então não há botão de Minificar. Se você precisa de dados compactos, converta com a ferramenta de converter JSON para YAML no sentido de YAML para JSON.
Outras formas de formatar YAML
VS Code. A extensão YAML da Red Hat acrescenta formatação e verificação por schema para arquivos como os manifestos do Kubernetes. Use Formatar Documento depois de instalar.
yq. A versão em Go do yq (de Mike Farah) lê e reescreve YAML. yq '.' file.yaml mostra o arquivo de volta no seu próprio estilo consistente, e a mesma ferramenta consulta e edita valores.
Prettier. Se o seu projeto já usa o Prettier, ele formata arquivos .yaml e .yml com as mesmas regras desta página.
yamllint. Uma ferramenta em Python que confere estilo e sintaxe sem reescrever o arquivo, útil na integração contínua.
Ferramentas relacionadas
Para transformar JSON em YAML ou o contrário, use a ferramenta de converter JSON para YAML. Para arquivos JSON, use o formatador JSON. Para configurações em XML, como as do Maven ou do Android, use o formatador XML.