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
[[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."""...""" 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.
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.