100 % local — seus dados nunca saem do seu navegador

Formatador YAML — comentários e âncoras ficam

Reindente YAML sem mexer no que ele diz. Os seus comentários e as suas âncoras passam inteiros: o arquivo continua sendo o que você queria commitar.

Instantâneo Privado Zero cookies
Indentação

Entrada YAML

Saída YAML

O que esta ferramenta faz

Ela reindenta. Não reescreve.

# Banco de produção — avisar o plantão antes de mexer
db:
    host: db.example.com   # troca manual
    port: 5432

Indentação de dois espaços, e todo o resto exatamente como você escreveu: o comentário acima de db, o depois de host, o estilo de aspas de cada escalar.

O jeito óbvio perde os seus comentários

O jeito óbvio de escrever um formatador YAML é analisar o arquivo como valor e serializar esse valor. Também é errado, de duas maneiras que não deixam rastro.

Todos os comentários somem. Um valor não tem comentários: eles vivem no documento, não nos dados. Um arquivo de configuração que alguém documentou — por que esse tempo limite, quem chamar, o que quebra se mudar — volta mudo, e a saída é YAML válido, então nada diz o que se perdeu.

As âncoras são expandidas. Isto:

base: &defaults
  restart: always
  logging: json
web:
  <<: *defaults
worker:
  <<: *defaults

vira três cópias do mesmo bloco, mais longo que a entrada, com o vínculo entre elas desfeito. Quem mudar restart na próxima vez terá de achar as três.

Este formatador conserva o documento e só muda a disposição.

Os valores ambíguos ficam intactos

country: NO continua country: NO.

Um leitor de YAML 1.2 vê a string NO; um de YAML 1.1 — o PyYAML — vê o booleano falso. Pôr aspas resolveria a questão, e resolvê-la cabe ao autor, não a um formatador: um arquivo escrito para o PyYAML bem pode ter querido dizer falso.

As ferramentas de conversão põem aspas, e fazem bem: partem de um valor que sabem ser uma string. Um formatador parte de um arquivo, e um arquivo não diz.

Vários documentos num arquivo

--- separa documentos YAML, e um arquivo pode ter quantos quiser. Cada um é formatado no lugar e os separadores ficam. Essa é a forma da maioria dos manifestos Kubernetes: um fluxo, não um erro.

As opções

Indentação — dois espaços por padrão, ou o que você escolher.

Ordenar chaves — em ordem alfabética, recursivamente, com cada comentário seguindo a entrada à qual estava preso. Útil para comparar dois arquivos que divergiram; deixe desligado se a ordem das suas chaves significa algo, o que num arquivo de configuração costuma ser o caso.

Privado por padrão

Tudo é executado localmente no seu navegador com JavaScript. Os seus dados nunca são enviados para um servidor, o que torna a ferramenta segura para conteúdo sensível e funciona offline.

Perguntas frequentes

Meus comentários vão sobreviver?
Sim — é disso que trata esta página. Um formatador que lê o documento como valor e reescreve esse valor **apaga todos os comentários**, e o resultado é YAML válido, então nada avisa. Este conserva o documento em si e só muda a disposição.
O que acontece com minhas âncoras e chaves de mesclagem?
Ficam como estão. `base: &defaults` e `<<: *defaults` voltam inalteradas, ainda ligadas. Expandi-las copiaria o bloco em cada uso, deixando o arquivo maior do que começou e dois lugares para editar em vez de um.
Posso formatar um arquivo com vários documentos?
Sim. `---` os separa, cada um é formatado no lugar e os separadores ficam. Isso importa porque um manifesto Kubernetes costuma ser exatamente isso, e antes era recusado de saída.

Conversores relacionados