YAML Formatter: Validar e formatar YAML
YAML formatter formata, valida e converte YAML para JSON no navegador. Indentação configurável, suporte a download.
O que é o YAML Formatter?
O YAML Formatter é uma ferramenta baseada no navegador que faz parsing, valida e re-serializa texto YAML com indentação consistente e configurável. A sintaxe sensível à indentação do YAML significa que um único bloco desalinhado pode alterar o significado de um documento inteiro ou produzir um erro difícil de localizar visualmente. Esta ferramenta detecta esses problemas imediatamente e produz uma saída limpa que corresponde ao seu estilo preferido.
Além da formatação básica, a ferramenta converte YAML diretamente para JSON — útil quando uma API ou ferramenta requer JSON mas sua configuração fonte está em YAML, ou quando você precisa verificar que seu YAML faz parsing para a estrutura de dados esperada. Ambas as operações rodam completamente no seu navegador usando a biblioteca js-yaml. Nenhum dado sai da sua máquina, não é necessária conta, e a ferramenta é gratuita.
Funcionalidades principais
- Formatar YAML com indentação correta — Faz parsing da entrada com
js-yamle re-serializa com o tamanho de indentação escolhido. A opçãolineWidth: -1impede que o formatter insira quebras de linha em strings longas, enoRefs: trueexpande âncoras e aliases para seus valores completos. - Validar sintaxe YAML com mensagens de erro — Se
js-yamlgerar um erro de parsing, a mensagem de erro exata (incluindo número de linha) aparece abaixo do painel de saída. Os erros usam um atributo acessívelrole="alert". - Converter YAML para JSON — Faz parsing do YAML e serializa o resultado como JSON usando
JSON.stringifycom a indentação selecionada. A lógica de download detecta se a saída começa com{ou[e salva o arquivo com extensão.jsonautomaticamente. - Copiar saída formatada para a área de transferência — Usa a Clipboard API com um fallback de textarea.
- Baixar como arquivo .yaml ou .json — Quando a saída é JSON (da operação de conversão), o arquivo é salvo como
formatted.json. Quando a saída é YAML (da operação de formatação), é salvo comoformatted.yaml. - Atalhos de teclado — Ctrl+Enter (Cmd+Enter) formata; Ctrl+Shift+J (Cmd+Shift+J) converte para JSON.
Como usar o YAML Formatter
Passo 1: Colar seu YAML
Acesse a ferramenta em /developer/code/yaml-formatter. Cole seu YAML no painel de entrada à esquerda. O textarea é monoespaçado e redimensionável. Documentos YAML de qualquer tamanho que caibam na memória do navegador são aceitos — a ferramenta não impõe nenhuma restrição de tamanho.
Passo 2: Escolher a indentação
Abra o menu suspenso de indentação na barra de ações abaixo dos painéis. Escolha 2 espaços ou 4 espaços. A seleção afeta tanto a saída do Format quanto a saída da conversão JSON. A indentação de dois espaços é o padrão da comunidade YAML e é usada por manifestos Kubernetes, playbooks Ansible e a maioria dos arquivos de pipeline CI/CD. A indentação de quatro espaços alinha-se com algumas convenções de projetos Python e Java.
Passo 3: Formatar ou converter
Clique em Format (ou pressione Ctrl+Enter / Cmd+Enter) para produzir uma saída YAML normalizada no painel direito. Clique em To JSON (ou pressione Ctrl+Shift+J / Cmd+Shift+J) para produzir um documento JSON equivalente.
Exemplo de entrada — um manifesto Kubernetes Deployment com indentação inconsistente:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-frontend
labels:
app: web
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: nginx
image: nginx:1.25
ports:
- containerPort: 80
Saída após Format com indentação de 2 espaços:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-frontend
labels:
app: web
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: nginx
image: nginx:1.25
ports:
- containerPort: 80
Passo 4: Converter para JSON (opcional)
Com o mesmo YAML na entrada, clique em To JSON. O painel de saída mostra o documento JSON equivalente:
{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"name": "web-frontend",
"labels": {
"app": "web"
}
}
}
(Truncado por brevidade — o documento completo incluiria spec)
Passo 5: Copiar ou baixar
Clique em Copy para copiar a saída para sua área de transferência. Clique em Download para salvar o arquivo. A ferramenta escolhe automaticamente .yaml ou .json como extensão de arquivo com base em se a saída parece JSON (começa com { ou [).
Exemplos práticos
Normalizar um arquivo de pipeline CI/CD
Um arquivo de workflow do GitHub Actions foi editado por vários colaboradores e tem indentação mista. Cole-o no formatter, clique em Format com indentação de 2 espaços, e a saída mostra indentação consistente em todo o documento. Antes de commitar a mudança, compare a entrada e a saída para confirmar que nenhuma diferença semântica foi introduzida — como YAML é sensível à indentação, a reformatação pode expor bugs de alinhamento que estavam ocultos no original.
Verificar estrutura de configuração
Você mantém um arquivo de configuração para uma aplicação Node.js que é implantada com YAML mas o runtime o lê como um objeto JavaScript parseado. Cole a configuração e clique em To JSON. A saída JSON mostra exatamente como o objeto parseado se parece, incluindo conversões de tipo (bare true/false → booleanos, números sem aspas → números). Isso confirma que valores como port: 8080 serão um número e não a string "8080".
Entrada:
server:
host: 0.0.0.0
port: 8080
debug: false
database:
url: postgres://localhost:5432/myapp
pool: 10
Saída JSON:
{
"server": {
"host": "0.0.0.0",
"port": 8080,
"debug": false
},
"database": {
"url": "postgres://localhost:5432/myapp",
"pool": 10
}
}
Expandir âncoras YAML
YAML suporta âncoras (&) e aliases (*) para reutilizar valores. O formatter usa noRefs: true, o que significa que todos os aliases são expandidos para seus valores completos na saída. Isso torna o documento formatado autocontido e mais fácil de ler em ferramentas que não suportam âncoras.
Dicas e boas práticas
O formatter preserva a ordem das chaves. As opções de dump do js-yaml incluem sortKeys: false, então a ordenação das suas chaves é mantida como está na saída formatada. Isso é importante para documentos Kubernetes e Ansible onde a ordem dos campos carrega convenção mesmo que não seja tecnicamente exigida.
Strings longas não são quebradas. A configuração lineWidth: -1 desativa a quebra automática de linha. Strings multilinhas e valores longos permanecerão em uma única linha em vez de serem quebrados em uma coluna arbitrária. Se você precisar de saída com quebra de linha, copie o resultado e aplique a quebra no seu editor.
Valide antes de commitar no controle de versão. Erros de indentação YAML são uma fonte comum de falhas de CI. Execute seu arquivo de pipeline neste formatter antes de fazer push. Um passo de formatação limpo sem mensagem de erro confirma que o YAML é sintaticamente válido.
Verifique a extensão do arquivo no download. A lógica de download inspeciona o conteúdo da saída, não a operação que você realizou. Se você formatou YAML e o YAML começa com { (alguns arquivos YAML usam sintaxe compatível com JSON), o arquivo é salvo como .json. Renomeie-o se necessário.
Booleanos YAML são estritos. A especificação YAML reconhece true, false, yes, no, on e off como valores booleanos em YAML 1.1. A biblioteca js-yaml segue YAML 1.2 por padrão, onde apenas true e false são booleanos. Se seu YAML usa yes/no, o formatter os trata como strings simples.
Problemas comuns e solução de problemas
Mensagem de erro com número de linha e coluna — Erros de parsing do js-yaml incluem a localização exata do problema. Olhe a linha indicada na sua entrada. Causas comuns: tabs usados para indentação em vez de espaços (YAML não permite tabs), dois pontos dentro de uma string sem aspas (por exemplo, url: http://example.com deve ser url: "http://example.com" ou usar um escalar de bloco), ou nível de aninhamento incorreto.
A saída não contém valores que estavam na entrada — Se seu YAML usa tags de tipo !! (por exemplo, !!binary, !!timestamp) que js-yaml não reconhece, esses valores podem ser removidos ou transformados. Inspecione os valores específicos para identificar a tag de tipo e coloque o valor entre aspas se necessário.
Erro "Please enter YAML to format" — O campo de entrada está vazio ou contém apenas espaços em branco quando você clicou em Format ou Converter. Cole seu YAML no painel de entrada primeiro.
O JSON convertido tem valores null inesperados — Um valor YAML de ~ ou um valor vazio (chave sem valor após os dois pontos) torna-se null em JSON. Esse é o comportamento correto e corresponde à especificação YAML. Coloque o valor entre aspas se você pretendia a string "~" ou uma string vazia "".
O download é salvo como .json em vez de .yaml — O manipulador de download verifica se a saída começa com { ou [. Alguns documentos YAML são escritos em sintaxe YAML compatível com JSON e começam com uma chave. Se for esse o caso com sua saída, renomeie o arquivo baixado para .yaml após salvar.
Privacidade e segurança
O YAML Formatter processa toda a entrada localmente no seu navegador usando a biblioteca js-yaml. Nenhum texto que você colar — incluindo strings de conexão de banco de dados, tokens de API, chaves privadas ou dados de configuração pessoal — é enviado a qualquer servidor. A ferramenta funciona sem conexão de rede uma vez que a página tenha carregado. Não há rastreamento de sessão nas operações de formatação.
Perguntas frequentes
O YAML Formatter é gratuito? Sim, completamente gratuito sem limites de uso. Todas as operações de formatação, validação e conversão estão disponíveis sem custo. As funcionalidades de apoiador do Glyph Widgets — presets salvos, histórico de sessão, notas de ferramenta — estão disponíveis para apoiadores do Ko-fi, mas a funcionalidade YAML principal não requer nada.
Funciona offline? Sim. Todo o processamento roda no seu navegador. Uma vez que a página carregue, você pode desconectar da internet e continuar usando o formatter e o conversor sem interrupção.
Meus dados estão seguros? Sim. Sua entrada YAML nunca é transmitida a um servidor. Ela existe apenas na memória do seu navegador e é apagada quando você clica em Limpar ou fecha a aba.
O formatter suporta arquivos YAML multi-documento (múltiplas seções ---)? A função load do js-yaml faz parsing do primeiro documento em um stream. Arquivos YAML multi-documento (separados por ---) terão apenas seu primeiro documento formatado. Use o comportamento de yaml.loadAll para arquivos multi-documento — mas esta ferramenta atualmente processa apenas o primeiro documento.
Qual é a diferença entre Format e To JSON? Format re-serializa o YAML parseado de volta como YAML com indentação consistente. To JSON serializa os mesmos dados parseados como um documento JSON. Ambas as operações usam a mesma etapa de parsing, então ambas validam o YAML e falham de forma idêntica em entrada inválida.
O formatter preserva comentários? Não. O parser js-yaml descarta comentários durante o parsing. Após a formatação, comentários na entrada original não aparecerão na saída. Se você precisar preservar comentários, edite a indentação manualmente no seu arquivo fonte.
Posso converter JSON para YAML? Esta ferramenta converte YAML para JSON. Para converter na direção inversa, use a ferramenta Em breve: JSON Converter, que suporta conversão de JSON para YAML.
Qual versão do YAML a ferramenta suporta? A biblioteca js-yaml implementa YAML 1.2, que é mais estrita sobre valores booleanos e alguns outros casos extremos em comparação com YAML 1.1. A maioria dos arquivos YAML modernos (Kubernetes, Docker Compose, GitHub Actions, etc.) são escritos para ser compatíveis com YAML 1.2.
Qual é o atalho de teclado para converter para JSON? Pressione Ctrl+Shift+J no Windows/Linux ou Cmd+Shift+J no macOS para acionar a operação de Converter para JSON. Pressione Ctrl+Enter ou Cmd+Enter para Formatar.
A extensão do arquivo no download reflete a operação que realizei? Não diretamente — o manipulador de download verifica se o texto de saída começa com { ou [ para decidir entre .json e .yaml. A saída YAML formatada que começa com um mapeamento será salva como .yaml, e a saída convertida para JSON (que sempre começa com { ou [) será salva como .json.
Ferramentas relacionadas
JSON Formatter — Formatar, validar e minificar JSON com validação de schema, geração de schema e visualizador de árvore interativo.
XML Formatter — Formatar e validar documentos XML com os mesmos controles de indentação e suporte a minificação.
Em breve: TOML Formatter — Formatar e validar arquivos de configuração TOML.
Experimente o YAML Formatter agora: YAML Formatter