Formatador e validador TOML

Cole TOML, formate com layout canônico TOML 1.0 ou valide a sintaxe. Sem upload.

  1. Cole seu TOML na área de texto à esquerda.
  2. Clique em Formatar para fazer round-trip pelo @iarna/toml e produzir layout canônico.
  3. Clique em Validar para verificar a sintaxe sem modificar a entrada.
  4. Erros apontam a linha e coluna ofensora.
O que ele faz?

Parseia seu TOML com @iarna/toml em modo TOML 1.0 e re-emite com layout canônico — chaves antes de sub-tabelas, aspas consistentes, underscores de inteiros removidos. O botão Validar verifica a sintaxe contra a spec sem mudar a entrada. Comentários são removidos durante o round-trip (formatadores TOML geralmente não conseguem preservá-los através de um ciclo parse-and-dump).

Exemplo

Entrada TOML bagunçada:

[server]
host="localhost"
port=8080

name="myapp"

Saída formatada:

name = "myapp"

[server]
host = "localhost"
port = 8080

Erros comuns de TOML e como corrigi-los

TOML 1.0 tem regras mais estritas que YAML ou JSON. Os padrões abaixo cobrem a maioria das falhas do parser.

  • Strings sem aspas. `name = Ada` é inválido. Use aspas duplas: `name = "Ada"`.
  • Redefinir uma tabela. Definir `[a]` duas vezes é erro. Cada cabeçalho de tabela pode aparecer no máximo uma vez. Mescle as chaves em um único bloco `[a]`.
  • Chaves de nível superior após uma tabela. Uma vez que você escreve `[section]`, todas as chaves seguintes pertencem àquela seção. Chaves devem vir antes do primeiro cabeçalho de tabela delas. O formatador reordena para você, mas a entrada crua já deve ser válida.
  • Data-hora sem fuso horário. `d = 2026-04-26T12:00:00` (sem Z nem offset) é uma "data-hora local". Parseia, mas consumidores estilo JSON podem não ter como representar a localidade. Use `2026-04-26T12:00:00Z` para UTC.
  • Extensão de tabela inline. Tabelas inline `point = {x=1, y=2}` são fechadas e auto-contidas. Você não pode depois escrever `point.z = 3`. Use a sintaxe de bloco padrão `[point]` para estender.
  • Confusão de escape com aspas triplas. `"""..."""` (multilinha básica) processa escapes; `\'\'\'...\'\'\'` (multilinha literal) não. Misturar os dois é o erro mais comum em strings multilinha.
Perguntas frequentes

Formatar muda meus dados?

Apenas o layout — chaves são reordenadas para colocar primitivos antes de sub-tabelas (regra TOML), espaçamento é normalizado, underscores de inteiros são removidos (semântica TOML). Os valores em si são inalterados.

Comentários TOML são preservados?

Não. @iarna/toml descarta comentários durante o round-trip parse-and-dump. Se precisa de formatação preservando comentários, precisaria de uma biblioteca diferente que retenha informação de posição de fonte.

Isto valida contra TOML 1.0?

Sim. @iarna/toml segue TOML 1.0 — incluindo permitir arrays de tipos mistos, chaves pontilhadas e regras de strings revisadas. Entradas que dependem de comportamento exclusivo de TOML 0.5 (arrays homogêneos requeridos) ainda parsearão aqui, mas podem quebrar em parsers 0.5 mais estritos.

Qual o tamanho máximo de TOML?

Até cerca de 30 MB antes do textarea ficar lento. A maioria dos arquivos de config está bem abaixo de 1 MB.

Meu TOML é enviado para algum lugar?

Não. Tudo roda no seu navegador — sua entrada é parseada e re-serializada por JavaScript nesta página e nunca enviada a servidor.

Por que o formatador reordena minhas chaves?

TOML 1.0 requer que chaves de nível superior (primitivos) apareçam antes de qualquer cabeçalho de tabela dentro do mesmo escopo. O formatador impõe isso ordenando primitivos à frente de sub-tabelas. Se sua entrada original tinha ordem diferente, o passo de formato a normaliza.