Pular para o conteúdo

Formatador e validador de TOML

TOML Formatter & Validator

Formata e valida TOML, normalizando a ordem das tabelas e o estilo das tabelas em linha.

Normaliza o espaçamento de um arquivo TOML — `key = value`, espaços nos cabeçalhos, quebra de arrays — e de quebra o confere contra a especificação TOML 1.0. Dois leitores percorrem o arquivo: um que conhece as regras de escrita e mantém os comentários, e outro que conhece as semânticas e produz a visão JSON.

🔒 Roda inteiramente no seu navegadortomlformatvalidateconfig
Saída
Tabelas em linha
Largura de quebra para arrays

TOML de entrada

Solte um arquivo .toml

Lido só nesta aba. Nada é enviado.

TOML formatado

Formatado.

Tabelas

5

Pares chave/valor

13

Comentários

1

Verificação

passou

O que ele muda e o que ele deixa

  • · Os espaços em volta de key = value, os brancos de um cabeçalho como [ a . b ] e os vãos dentro de arrays e tabelas em linha são normalizados, com uma linha em branco antes de cada cabeçalho.
  • · Um array curto vai em uma linha; um array que passa da largura de quebra, ou que tem um comentário dentro, sai com um elemento por linha e vírgula no fim.
  • · Strings, números e datas ficam exatamente como foram escritos. Transformar 1_000 em 1000, ou 0xff em 255, é edição, não formatação.
  • · Uma chave que não precisa das aspas ("name") as perde; uma que precisa ("127.0.0.1") é escrita com aspas literais.
  • · Um zero à esquerda, um sublinhado fora de lugar, True, uma tabela em linha espalhada por várias linhas, uma chave duplicada e uma tabela definida duas vezes são todos recusados, conforme a especificação do TOML 1.0 em toml.io.

Para converter para JSON ou YAML, use o JSON ⇄ TOML conversor.

Como usar

  1. Cole o arquivo

    Um `Cargo.toml`, um `pyproject.toml`, um `netlify.toml`. Espaçamento inconsistente é o ponto: é isso que está sendo consertado.

  2. Defina a largura de quebra dos arrays

    Um array curto fica em uma linha; qualquer um que passe da largura, ou que tenha um comentário dentro, recebe um elemento por linha com vírgula no fim. Essa vírgula final é o que mantém os diffs futuros em uma linha só.

  3. Ordene se ajudar, e só então

    A ordenação de chaves move só as linhas chave/valor e deixa comentários e linhas em branco no lugar. A ordenação de tabelas ordena os cabeçalhos em um nível e leva as subtabelas junto. A ordem de um array de tabelas é dado, então nunca é tocada.

Perguntas frequentes

Por que `1_000` não é reescrito como `1000`?

Porque isso é uma edição, não uma formatação. Sublinhados em números, literais hexadecimais e a grafia exata de uma data são coisas que o autor escolheu. O formatador muda espaço em branco e aspas, e deixa os valores como escritos.

Ele rejeitou meu arquivo, mas outro parser aceitou.

Provavelmente uma das coisas que o TOML 1.0 proíbe e leitores tolerantes permitem: um zero à esquerda, um sublinhado fora de lugar, `True` com T maiúsculo, uma tabela inline espalhada por várias linhas, uma chave duplicada ou uma tabela definida duas vezes. O erro diz qual, com número de linha.

O que acontece com uma data quando mudo para JSON?

Ela vira uma string, e um aviso diz isso. TOML tem datas e horas com offset, datas locais e horas locais como tipos reais; JSON não tem nenhum deles, então o texto é levado adiante e o tipo se perde.

Os comentários são mantidos?

Sim, inclusive a posição em relação à chave a que pertencem, que é a razão de o formatador ter seu próprio scanner em vez de reutilizar o leitor do conversor. A contagem de comentários aparece nas estatísticas.

Pode receber de

Em seguida

Estas aceitam o que esta ferramenta produz, então o resultado pode ir direto.