Validador e formatador de YAML
FormataçãoValide, normalize ou comprima YAML com js-yaml. Ajusta indentação e aspas e separa fluxos de vários documentos (---). Processamento apenas de YAML — sem conversão de formato.
URLs remotas não são buscadas; cole seu JSON diretamente.
Nesta página
O que é um formatador de YAML?#
Um formatador de YAML pega um arquivo de configuração que derivou — tabulações misturadas com espaços, passo de indentação inconsistente, aspas usadas nuns sítios e não noutros, uma âncora que alguém definiu e nunca reutilizou — e normaliza-o para uma forma limpa e previsível. Também apanha a coisa pela qual o YAML é notório: um documento que parece estar bem e silenciosamente significa outra coisa, porque o YAML é sensível a espaços em branco e cheio de regras implícitas sobre o que uma palavra solta significa.
Esta página analisa o seu YAML e reemite-o através do js-yaml de forma controlada. Formatar re-indenta com o passo que escolher (2 ou 4 espaços), desliga a quebra de linha para que cada valor fique na sua própria linha, e expande quaisquer âncoras e aliases em conteúdo repetido simples para que a saída seja totalmente autossuficiente. Compactar redespeja os mesmos dados em notação de fluxo — {a: 1, b: [2, 3]} — que é o mais próximo que o YAML tem de uma forma compacta, já que o YAML não consegue simplesmente apagar os seus espaços em branco como o JSON ou o CSS conseguem. Qualquer que seja o modo escolhido, o documento é analisado primeiro, pelo que uma tabulação onde devia haver um espaço, ou um dois-pontos sem o espaço final, é reportada com a sua linha e coluna em vez de produzir silenciosamente a estrutura de dados errada.
Como usar#
- Cole o seu YAML no painel Entrada à esquerda. O marcador de posição mostra um documento mínimo, ou clique em Exemplo.
- Escolha um botão de Modo na barra de ferramentas:
- Formatar — re-indentar, desativar a quebra de linha, expandir âncoras/aliases, e emitir cada coleção em estilo de bloco.
- Compactar — emitir todas as coleções em estilo de fluxo no menor número de linhas possível. A indentação torna-se irrelevante porque as coleções de fluxo são explícitas.
- No modo Formatar, escolha a Indentação: 2 ou 4 espaços.
- Opcionalmente escolha um estilo de Aspas: auto (pôr entre aspas apenas quando um escalar realmente precisa — a predefinição), simples ou duplas. Isto normaliza o carácter de aspas em escalares que têm de estar entre aspas; nunca força aspas em valores simples que não precisam delas.
- Leia o resultado no painel Saída. O cabeçalho mostra o tamanho da saída; use Copiar para o recolher. Limpar repõe ambos os painéis.
Se a análise falhar, a barra de estado reporta a linha e a coluna do problema — os erros do js-yaml transportam uma posição, e esta página fá-la surgir diretamente.
Principais funcionalidades#
- Formatar e compactar a partir da mesma análise. Ambos os modos validam o documento antecipadamente, pelo que um erro estrutural é reportado uma vez com uma localização, independentemente do botão em que se carregou.
- Âncoras expandidas. As referências
&anchor/*aliassão resolvidas e escritas inline (noRefs), pelo que a saída nunca depende de um nome definido três telas antes. O resultado é um documento autossuficiente que se pode entregar a qualquer pessoa. - Sem quebra de linha. Os valores longos não são quebrados num limite de coluna (
lineWidth: -1), pelo que cada valor ocupa exatamente uma linha — mais fácil de comparar e mais fácil de ler. - Normalização de aspas opcional. Escolha aspas simples ou duplas para tornar o carácter de aspas consistente em todo o documento, ou deixe em auto para que só os valores que genuinamente precisam de aspas as recebam.
- Conhecedor de multidocumento. Entrada separada por
---é analisada como múltiplos documentos e reemitida com separadores---intactos — útil para manifestos Kubernetes e arquivos multidoc semelhantes. - Defende-se contra YAML bombs. Um limite de profundidade de aninhamento impede documentos patologicamente profundos de se expandirem em algo perigoso.
- Estritamente no lado do cliente, com um Web Worker para entradas acima de 1 MB para a página se manter responsiva.
Exemplo prático#
Uma configuração de serviço com uma âncora reutilizada e estilo ligeiramente irregular:
Entrada:
service:
name: &name "api-gateway"
host: example.com
reaspas simples: 3
id: *name
logging:
level: info
outputs: [{name: stdout}, {name: file}]
Clique em Formatar com 2 espaços e aspas auto:
service:
name: api-gateway
host: example.com
reaspas simples: 3
id: api-gateway
logging:
level: info
outputs:
- name: stdout
- name: file
Duas coisas aconteceram que se podem ver. A âncora &name e o alias *name foram ambos resolvidos para o valor literal api-gateway, pelo que id aparece agora como um valor simples e o documento já não depende da âncora. E a lista de fluxo [{name: stdout}, {name: file}] foi reescrita como uma lista de bloco, uma entrada por linha — muito mais fácil de perscrutar e de comparar contra outra versão. Clique em Compactar na mesma entrada e os mesmos dados voltam em forma de fluxo:
service: {name: api-gateway, host: example.com, reaspas simples: 3, id: api-gateway}
logging: {level: info, outputs: [{name: stdout}, {name: file}]}
Cada coleção está agora inline. A contagem de bytes desce porque a indentação e as mudanças de linha desapareceram, mas o significado é idêntico — que é exatamente o que compactar deve significar para um formato sensível a espaços em branco.
FAQ#
Para onde foram os meus comentários?#
O round-tripping do YAML através do js-yaml analisa comentários e descarta-os — não há redumper que preserve comentários na biblioteca. Os comentários são tolerados durante a análise (nunca causam erro) mas não aparecem na saída. Se os comentários transportam contexto importante, mantenha o seu arquivo original como fonte de verdade e trate a saída desta ferramenta como a forma canónica de máquina.
Qual é a diferença entre Formatar e Compactar para YAML?#
Formatar reescreve o documento em estilo de bloco limpo: mapeamentos e sequências aninhadas indentados com o passo que escolheu, um valor por linha, sem quebra. Compactar reescreve os mesmos dados em estilo de fluxo: coleções {key: value} e [a, b] numa única linha. Ambos analisam de forma idêntica primeiro; só diferem em como os dados são serializados de volta.
Em que é que isto difere do conversor YAML/JSON?#
Esta ferramenta é YAML dentro, YAML fora — normaliza ou compacta um documento YAML e devolve YAML. O conversor YAML/JSON neste site traduz entre os dois formatos. Use esta página quando quer o mesmo formato, apenas com melhor forma; use o conversor quando efetivamente quer JSON.
O meu YAML é enviado para algum lado?#
Não. O js-yaml está empacotado na página e corre no seu navegador. Para entradas acima de 1 MB a análise acontece dentro de um Web Worker, mas ainda localmente — nada sai do seu dispositivo.