ToolDeck

TOML Formatter

Formatera och validera TOML-konfigurationsfiler

Prova ett exempel

TOML-inmatning

Formaterad TOML

Körs lokalt · Säkert att klistra in hemligheter
Formaterad TOML visas här…
Prova också:TOML to JSON

Senast uppdaterad: april 2026

Vad är TOML-formatering?

TOML (Tom's Obvious Minimal Language) är ett konfigurationsfilformat skapat av Tom Preston-Werner år 2013. Det mappas direkt till en hashtabell och använder explicit typning för alla värden. En TOML-formaterare tar rå eller inkonsekvent formaterad TOML och serialiserar om den med enhetlig avståndssättning, korrekt indragning och kanonisk nyckelordning. Resultatet är en fil som följer samma konventioner i hela projektet, vilket gör konfigurationsändringar enklare att granska i diff:ar.

TOML v1.0.0-specifikationen, färdigställd i januari 2021, definierar grammatiken tillräckligt strikt för att varje kompatibel parser producerar en identisk datastruktur från samma indata. Formatering ändrar inte det semantiska innehållet i en TOML-fil. Den justerar bara blanksteg, nyckelgruppering och citatteckenstil. Det innebär att du fritt kan formatera TOML-filer utan att behöva oroa dig för att applikationens beteende påverkas.

Till skillnad från JSON stöder TOML kommentarer, inbyggda datum- och tidtyper samt flera strängformer (grundläggande, bokstavlig och flerradig). En bra formaterare bevarar kommentarer och respekterar skillnaden mellan inline-tabeller och vanliga tabellrubriker. Den hanterar också tabellmatriser korrekt och håller sektionsgruppering intakt så att filen förblir läsbar för både människor och de parsers som konsumerar den.

Before · toml
After · toml
title="My App"
version="1.0.0"
debug=false
[database]
host="localhost"
port=5432
name="mydb"
[database.pool]
max_connections=25
timeout=30
[[servers]]
name="web"
host="web.example.com"
[[servers]]
name="api"
host="api.example.com"
title = "My App"
version = "1.0.0"
debug = false

[database]
host = "localhost"
port = 5432
name = "mydb"

[database.pool]
max_connections = 25
timeout = 30

[[servers]]
name = "web"
host = "web.example.com"

[[servers]]
name = "api"
host = "api.example.com"

Varför använda en TOML-formaterare?

Konfigurationsfiler ackumulerar stilavvikelser när olika teammedlemmar redigerar dem över tid. Tabbar blandas med mellanslag, vissa nycklar citeras i onödan och tabellsektioner förlorar sin visuella gruppering. En TOML-formaterare normaliserar allt detta i ett enda genomlopp.

Omedelbar formatering
Klistra in oformaterad TOML och få ren, konsekvent stilad utdata direkt. Ingen CLI-installation, ingen projektkonfiguration, inget väntan på ett byggsteg.
🔒
Integritetssäker bearbetning
All parsning och formatering körs i din webbläsare. Din konfigurationsdata, inklusive eventuella autentiseringsuppgifter eller interna värdnamn, lämnar aldrig din enhet.
Validering ingår
Formateraren parsar din TOML innan den serialiseras om. Om indata innehåller syntaxfel får du ett tydligt felmeddelande med den problematiska raden, så formateringen fungerar även som validering.
📋
Inget konto krävs
Öppna sidan och börja formatera. Det finns ingen registrering, ingen hastighetsbegränsning och ingen användningsspårning. Verktyget fungerar på samma sätt varje gång du besöker det.

Användningsfall för TOML Formatter

Frontendutveckling
Formatera Wrangler.toml-filer för Cloudflare Workers-projekt eller deno.toml-konfiguration för Deno-baserade frontends. Ren formatering underlättar granskning av driftsättningskonfigurationer i pull requests.
Backendteknik
Standardisera Cargo.toml-filer över flera Rust-mikrotjänster. Konsekvent formatering gör det enkelt att skanna beroendeverioner och feature flags över olika arkiv.
DevOps och CI/CD
Formatera konfigurationsfiler som .goreleaser.toml, netlify.toml eller Starship-promptkonfigurationer innan du checkar in. Lägg till en formateringskontroll i CI-pipeliner för att upprätthålla stilkonsekvens.
QA och testning
Formatera testfixtures snabbt så att de är läsbara och diff:bara. När ett test misslyckas på grund av konfigurationsskillnader gör formaterade filer jämförelsen mellan faktisk och förväntad data uppenbar.
Datateknik
Formatera Telegraf- eller InfluxDB-konfigurationer som definierar datainsamlingspipelines. Dessa filer växer ofta till hundratals rader och konsekvent formatering håller dem underhållbara.
Lära sig TOML-syntax
Klistra in exempel från dokumentation eller handledningar och se hur en formaterare normaliserar dem. Det är ett snabbt sätt att lära sig vilka parentes-stilar, citatteckensregler och tabellgrupperingar som är kanoniska.

Referens för TOML-syntax

TOML har en liten uppsättning konstruktioner. Tabellen nedan listar varje strukturellt element som definieras i TOML v1.0.0-specifikationen. En formaterare tillämpar konsekvent avståndssättning och gruppering på samtliga dessa.

SyntaxNamnAnmärkningar
key = "value"Basic key-value pairKeys are bare or quoted; values are typed
[table]Standard tableCreates a named section (hash table)
[a.b.c]Dotted tableShorthand for nested tables
[[array]]Array of tablesEach [[name]] block appends to an array
key = """...\n"""Multi-line basic stringAllows newlines, escapes processed
key = '''...\n'''Multi-line literal stringAllows newlines, no escape processing
# commentCommentExtends to end of line; not in JSON output
{inline = true}Inline tableSingle-line table, no newlines allowed

TOML vs JSON vs YAML

TOML, JSON och YAML löser överlappande problem men gör olika avvägningar.

FunktionTOMLJSONYAML
Kommentarer# radkommentarerStöds ej# radkommentarer
Typade värdenSträng, heltal, flyttal, bool, datetimeSträng, nummer, bool, nullHärledd (felbenägen)
Nästning[tabell]-rubrikerKlammerparenteserIndragningsbaserad
SpecifikationsstrikthetStrikt (ett parsningsresultat)Strikt (RFC 8259)Löst (flera giltiga parsningar)
Datum/tid-stöd4 inbyggda typerInget (använd strängar)Implicit (ömtåligt)
Avslutande kommateckenInte tillåtetInte tillåtetEj tillämpligt (inga kommatecken)

Kodexempel

Exemplen nedan formaterar TOML programmatiskt i olika språk och verktyg. Varje exempel läser en fil, tolkar den och skriver en formaterad version.

JavaScript (Node.js)
import { parse, stringify } from '@iarna/toml'
import fs from 'fs'

const raw = fs.readFileSync('config.toml', 'utf-8')
const doc = parse(raw)
const formatted = stringify(doc)
// stringify() outputs canonical TOML with consistent spacing
fs.writeFileSync('config.toml', formatted)

// Quick one-liner with npx:
// npx taplo fmt config.toml
Python
import tomllib   # Python 3.11+ (read-only)
import tomli_w   # pip install tomli-w (write)

# Parse and re-serialize to format
with open("config.toml", "rb") as f:
    data = tomllib.load(f)

formatted = tomli_w.dumps(data)
# tomli_w produces sorted keys, consistent quoting, and
# proper whitespace around = signs
print(formatted)

# CLI alternative: taplo fmt config.toml
Go
package main

import (
    "fmt"
    "os"
    "github.com/BurntSushi/toml"
    "bytes"
)

func main() {
    var data map[string]interface{}
    _, err := toml.DecodeFile("config.toml", &data)
    if err != nil {
        fmt.Fprintln(os.Stderr, err) // parse error with line number
        os.Exit(1)
    }
    var buf bytes.Buffer
    enc := toml.NewEncoder(&buf)
    enc.Indent = "  "
    enc.Encode(data) // re-serialized with consistent formatting
    fmt.Print(buf.String())
}
CLI (taplo)
# Install taplo — the standard TOML toolkit
cargo install taplo-cli
# or: npm install -g @taplo/cli

# Format a single file in place
taplo fmt config.toml

# Format all .toml files in a project
taplo fmt

# Check formatting without modifying (CI-friendly)
taplo fmt --check

# Validate TOML syntax without formatting
taplo lint config.toml

Vanliga frågor

Vad gör en TOML-formaterare?
En TOML-formaterare tolkar filen till en datastruktur och serialiserar den sedan om med konsekvent blanksteg, nyckelordning och citatteckenstil. Det semantiska innehållet förblir detsamma. Bara den visuella presentationen förändras: avstånd runt likhetstecken, tomma rader mellan tabellsektioner och indragning av nästlade värden.
Är TOML-formatering säker för produktionskonfigurationsfiler?
Ja. Formatering ändrar bara blanksteg och kosmetiska detaljer. Datastrukturen som parsas fram är identisk före och efter formatering. Om formateraren stöter på ogiltig indata rapporterar den ett fel istället för att producera trasig utdata. Du kan verifiera detta genom att tolka båda versionerna och jämföra de resulterande objekten.
Hur skiljer sig TOML från JSON?
TOML stöder kommentarer, inbyggda datum- och tidtyper, flerradiga strängar och tabellrubriker för att organisera nästlad data. JSON har inget av detta. Formatet är utformat för konfigurationsfiler som människor läser och redigerar. JSON är utformat för datautbyte mellan program. Du kan inte använda kommentarer i JSON, vilket gör det svårare att dokumentera konfigurationsbeslut inline.
Kan jag formatera TOML från kommandoraden?
Ja. Taplo är det mest använda CLI-verktyget för TOML-formatering. Installera det med cargo install taplo-cli eller npm install -g @taplo/cli och kör sedan taplo fmt för att formatera alla .toml-filer i projektet. Det stöder konfiguration via en taplo.toml- eller .taplo.toml-fil för anpassade regler.
Bevarar formateringen kommentarer i TOML-filer?
Den här webbläsarbaserade formateraren tolkar indata till en datastruktur och serialiserar om den, vilket tar bort kommentarer. Om du behöver bevara kommentarer använder du ett CST-medvetet verktyg som Taplo (CLI) eller toml-edit (Rust-bibliotek), som arbetar på det konkreta syntaxträdet istället för den tolkade datan.
Vad är skillnaden mellan TOML-formatering och TOML-validering?
Validering kontrollerar om filen överensstämmer med specifikationen och rapporterar fel om den inte gör det. Formatering går ett steg längre: den validerar indata och skriver sedan om den med normaliserad stil. Varje formateringsoperation inkluderar validering som sitt första steg, så en fil som formateras utan fel är garanterat giltig.
Vilka projekt använder TOML som konfigurationsformat?
Rusts Cargo (Cargo.toml), Pythons paketeringsekosystem (pyproject.toml), Hugo-statiska webbplatser, Deno (deno.toml), Cloudflare Workers (wrangler.toml), InfluxDB, Telegraf och Starship-prompten använder alla TOML. Formatet fick spridning efter att Rust antog det som standard för paketmanifest år 2015.