Formate YAML com indentação consistente, mantendo comentários e valores.
O que ela faz
O YAML Formatter reescreve o YAML com indentação e espaçamento consistentes, para que fique mais fácil de ler e de comparar. Ele muda a forma como o texto é disposto, não o que ele significa: chaves, valores e comentários são mantidos.
Todo resultado é conferido antes de você vê-lo. A ferramenta lê de volta o texto formatado e compara a sua estrutura e os seus comentários, tanto o texto quanto o lugar onde estão, com a sua entrada, e, se houver diferença, recusa em vez de entregar um texto que poderia significar outra coisa.
O que ela aceita
- YAML lido segundo as regras do YAML 1.2 Core, como um documento ou vários separados por ---: mapeamentos, listas, comentários, âncoras e aliases, blocos de texto de várias linhas (| e >) e as tags padrão do YAML, como !!str.
- Com vários documentos, todos são formatados e os separadores são mantidos. Os comentários em volta de um separador ficam do mesmo lado dele, e um documento vazio continua vazio. Cada documento tem as suas próprias âncoras, então um alias não pode apontar para uma âncora de outro documento, e o mesmo nome de âncora pode ser usado de novo no documento seguinte.
- Indentação de 2 ou 4 espaços, nunca tabulações. As quebras de linha do resultado são sempre do mesmo tipo, qualquer que seja o do seu texto.
- Os comentários são mantidos, inclusive os no fim de uma linha. Uma sequência de linhas em branco vira uma única linha em branco, e o espaçamento antes de um comentário fica uniforme.
- Os valores mantêm o seu significado: números como 0o17, 0x1F, 1e400, 9007199254740993 e -0 são escritos exatamente como você os escreveu, um texto não é transformado em número, data ou sim/não, e os blocos de texto de várias linhas mantêm as suas quebras de linha.
- O estilo das aspas pode mudar: um texto entre aspas simples costuma ser escrito entre aspas duplas. O texto em si não muda.
- As âncoras e os aliases são mantidos. Quando um valor tem uma âncora e uma tag ao mesmo tempo, a ferramenta pode trocar a ordem das duas.
- A chave de mesclagem << é mantida como uma chave comum, com um aviso, porque o YAML 1.2 Core não tem chaves de mesclagem.
Bom saber
- Estes casos são recusados, sem resultado: uma chave repetida em um mapeamento; uma tag que não é uma tag padrão do YAML, ou uma tag padrão que não combina com o valor, como !!int abc; uma chave que não é texto (um número, true, false, null, uma chave vazia ou uma chave escrita como lista ou mapeamento); e uma diretiva como %YAML ou %TAG. Erros de sintaxe também são recusados, em qualquer documento, com a sua linha e coluna contadas desde o início do texto todo. A ferramenta nunca corrige o YAML.
- Verificação de segurança: depois de formatar, a ferramenta lê o resultado de volta e compara a sua estrutura e os seus comentários, inclusive o lugar de cada comentário, com a sua entrada. Se algo for diferente, ela recusa com um aviso de que formatar poderia mudar o significado. Causas típicas são uma tabulação no fim de uma linha dentro de um bloco de texto de várias linhas (| ou >), um número depois do marcador de bloco (como |2) que a indentação escolhida quebraria e um comentário dentro de [ ] ou { } que a formatação teria de tirar de dentro deles, seja sozinho em uma linha entre os colchetes, seja na mesma linha do colchete de abertura. Corrigir esse trecho (mova esse comentário para fora dos colchetes), ou escolher 2 espaços, costuma resolver.
- Um texto só com comentários ou linhas em branco não tem nada para formatar, então você recebe um aviso pedindo conteúdo.
- Arquivos grandes podem demorar para formatar, e os arquivos com muitos comentários demoram ainda mais. Se uma execução for interrompida no limite de tempo, tente uma entrada menor.
- Se a indentação deixasse o resultado muito maior que o limite de tamanho, a ferramenta para antes de formatar. Use 2 espaços ou menos aninhamento.
- Os limites valem para o texto todo: os limites de tamanho somam todos os documentos, enquanto o limite de aninhamento vale para cada documento separadamente.
Como usar
- Cole ou digite o seu YAML na caixa de entrada. Ele pode ter um documento ou vários, separados por ---. Nada é executado enquanto você digita.
- Escolha a indentação (“2 espaços” ou “4 espaços”) e aperte “Formatar”.
- Leia o resultado ao lado da entrada. Se o seu YAML for recusado, a mensagem explica o motivo e, quando possível, o lugar.
- Aperte “Copiar” para colocar o resultado na área de transferência, ou “Baixar” para salvá-lo como formatted.yaml.
Exemplos
Arrumar um arquivo bagunçado
Cole este YAML e aperte “Formatar” com “2 espaços” selecionado. Os dois comentários são mantidos. Os espaços extras somem, os itens da lista recebem a indentação escolhida, as aspas simples em volta de two viram aspas duplas (o texto continua sendo two), três linhas em branco viram uma e o espaçamento dentro de { } fica uniforme.
# settings
name: demo # the name
items:
- one
- 'two'
flags: {a: 1, b: 2}
# settings
name: demo # the name
items:
- one
- "two"
flags: { a: 1, b: 2 }
Uma chave repetida
A chave “port” aparece duas vezes no mesmo mapeamento, o que o YAML não permite. A ferramenta nunca escolhe um dos dois valores por você, então recusa e aponta a repetição.
port: 80
port: 8080
Uma chave se repete no mesmo mapeamento. O YAML exige que as chaves de um mapeamento sejam únicas. Remova ou renomeie a chave repetida.
Linha 2, coluna 1
Mais de um documento
Cole este YAML e aperte “Formatar”. Os dois documentos são separados por ---. Cada um é formatado por conta própria: o separador continua entre eles, os dois comentários continuam no seu documento, e os espaços extras e a indentação são corrigidos nos dois.
# first
name: one
---
# second
name: two
items:
- a
# first
name: one
---
# second
name: two
items:
- a
Uma tag personalizada
A tag !money não é uma das tags padrão do YAML. O YAML Validator aceita este texto com um aviso, mas o YAML Formatter suporta apenas as tags padrão, então recusa em vez de arriscar uma mudança nos seus dados.
price: !money 12.50
Este YAML usa uma tag que esta ferramenta não suporta: uma tag personalizada ou fora do Core, ou uma tag do Core (como !!int) que não combina com o valor. A sintaxe é válida, mas o YAML Formatter e o Viewer suportam apenas as tags do YAML 1.2 Core, então esta ferramenta recusou em vez de alterar ou ocultar seus dados.
Linha 1, coluna 8
YAML válido que não é seguro reformatar
A única coisa entre os colchetes é um comentário sozinho em uma linha. O texto é um YAML válido, mas formatar exigiria tirar esse comentário de dentro dos colchetes, o que muda o lugar onde ele está, então a ferramenta recusa e deixa o seu texto como está. Um comentário na mesma linha do colchete de abertura, como em ports: [ # note, é recusado pelo mesmo motivo.
a: [
# c
]
Este YAML é válido, mas formatá-lo poderia mudar seu significado, então a ferramenta recusou em vez de arriscar seus dados. Causas típicas: uma tabulação no fim de uma linha dentro de um bloco de texto de várias linhas (| ou >), um número depois do marcador de bloco (como |2) que a indentação escolhida quebraria, ou um comentário dentro de [ ] ou { } que a formatação teria de mover para fora deles. Corrija esse trecho ou escolha 2 espaços e tente novamente.
Limites e privacidade
Limites de tamanho
- Entrada: até 2.000.000 bytes de texto em UTF-8 (cerca de 2 MB). Letras acentuadas e emojis ocupam mais de um byte cada. Uma entrada maior é recusada.
- Resultado: também até 2.000.000 bytes. Se o resultado completo fosse maior, a ferramenta mostra apenas uma prévia incompleta dos primeiros 100.000 bytes, e essa prévia não pode ser copiada nem baixada.
- Aninhamento: até 256 níveis de mapeamentos e listas dentro uns dos outros. Um YAML mais profundo é recusado porque passa do que a ferramenta processa.
- Tempo: uma execução que demora mais que o seu limite de tempo é interrompida. Tente uma entrada menor.
Sua privacidade
O texto que você digita ou cola, ou abre de um arquivo local, é processado localmente no seu navegador, em um Web Worker dedicado. Ele nunca é enviado para o servidor (um arquivo que você abre é lido apenas no seu navegador) e não é gravado em armazenamento, cookies nem na barra de endereços.
“Copiar” coloca o resultado na área de transferência e “Baixar” o salva como arquivo, mas só quando você aperta o botão. O arquivo é criado no seu navegador, então nada é enviado.
Para ver os detalhes completos, consulte a Política de Privacidade
Ferramentas e páginas relacionadas
O seu texto continua na página quando você troca de ferramenta na mesma aba, então dá para testar o mesmo texto em outra. Recarregar ou fechar a aba o encerra.