Formatador de TOML

Formate e valide TOML (Tom's Obvious, Minimal Language). Alinha claramente pares key = value, tabelas e arrays, e mostra erros de sintaxe com o número da linha.

Principais tipos de dados do TOML

Tipo Exemplo Descrição
String (básica) "hello" Escrita entre aspas duplas. Suporta sequências de escape como \n e \t.
String (literal) 'C:\path' Escrita entre aspas simples. Nenhum escape é aplicado, o que é útil para caminhos com barras invertidas.
Inteiro 42 Decimal por padrão; também suporta 0x (hex), 0o (octal), 0b (binário) e separadores com underline como 1_000.
Ponto flutuante 3.14 Notação exponencial (1e10) e os valores especiais inf/nan também são válidos.
Booleano true Apenas true ou false. Formas com maiúscula inicial (True) são inválidas.
Array [1, 2, 3] Valores separados por vírgula dentro de colchetes. Uma vírgula final é permitida.
Tabela [server] Todo par key = value que segue um cabeçalho de seção passa a pertencer àquela tabela.
Array de tabelas [[fruits-basket]] Repetir o mesmo nome de tabela expressa um array (por exemplo, várias definições de dependências).
Data/Hora 1979-05-27T07:32:00Z Formato RFC 3339 — o único valor composto que pode ser escrito sem aspas.

Dicas

  • Apenas arrays e tabelas em linha escritos em uma única linha são suportados. Se seu array ocupar várias linhas, junte-o em uma só antes de colar.
  • O formatador sempre normaliza exatamente um espaço em cada lado de "=" e padroniza os separadores de arrays/tabelas em linha para ", ", eliminando inconsistências entre diferentes autores.
  • Comentários (tudo após #) são preservados; a única alteração aplicada é inserir um espaço logo após "#" quando estiver faltando, mantendo a edição mínima.
  • Linhas em branco consecutivas são reduzidas a uma única linha, facilitando a visualização dos limites entre tabelas.
  • Todo o processamento acontece inteiramente no seu navegador — nada do que você cola aqui é enviado a um servidor.

Perguntas frequentes

O TOML costuma funcionar bem para arquivos mais planos, com muitos pares chave-valor, editados por várias pessoas (como manifestos de dependências), já que erros de indentação raramente quebram algo. O YAML costuma ser melhor quando você precisa de estruturas profundamente aninhadas ou de vários documentos em um único arquivo.

Ela formata corretamente cada cabeçalho [[section]], mas não combina seções repetidas com o mesmo nome em um único objeto do tipo array (como faria um conversor completo de TOML para JSON). Para estruturas complexas de array de tabelas, revise visualmente o resultado formatado linha por linha.

A ferramenta reconhece a sintaxe RFC 3339 e repassa o valor sem alterações, mas não valida sua correção no calendário (por exemplo, não detecta um "30 de fevereiro"). Se a validação estrita de datas for importante, verifique separadamente.

Atualmente """...""" e '''...''' não são suportadas, e essa linha será reportada como erro. Converta textos longos em uma string de uma única linha com escapes antes de formatar.

Não. Toda a formatação ocorre inteiramente no seu navegador via JavaScript; nada é enviado ou armazenado em um servidor, por isso é seguro usar mesmo com arquivos de configuração que contenham credenciais.
ツールくん

Curiosidade — Por que o TOML se tornou a língua comum dos arquivos de configuração

O TOML foi criado em 2013 por Tom Preston-Werner, cofundador do GitHub, e seu nome completo, "Tom's Obvious, Minimal Language", reflete diretamente o objetivo do design: um formato tão fácil de analisar para máquinas quanto o JSON, mas que se lê e se escreve naturalmente para humanos, sem ambiguidades.

O momento decisivo veio quando o Cargo, gerenciador de pacotes do Rust, adotou o Cargo.toml como formato de manifesto. Depois, a PEP 518 introduziu o pyproject.toml como padrão de empacotamento do Python, unificando o que antes era uma mistura de setup.py, setup.cfg e requirements.txt.

A maior diferença em relação ao YAML é que o TOML não atribui nenhum significado à indentação. No YAML, um pequeno erro de indentação pode alterar silenciosamente a estrutura dos dados ou causar um erro de sintaxe; o TOML, por outro lado, expressa a hierarquia apenas por meio de cabeçalhos [section] e pares key = value, tornando os erros de copiar e colar muito menos prováveis.

Em contrapartida, o TOML abre mão de parte da expressividade do YAML: não possui âncoras/aliases para reutilizar valores e é mais verboso para estruturas profundamente aninhadas, por isso muitas equipes escolhem entre TOML, YAML e JSON conforme o formato dos dados.

→ Ver todas as curiosidades