TOML-Formatierer
Formatiert und validiert TOML (Tom's Obvious, Minimal Language). Richtet key = value, Tabellen und Arrays sauber aus und zeigt Syntaxfehler mit Zeilennummer an.
Wichtigste TOML-Datentypen
| Typ | Beispiel | Beschreibung |
|---|---|---|
| Zeichenkette (Basic) | "hello" | Wird in doppelte Anführungszeichen gesetzt. Unterstützt Escape-Sequenzen wie \n und \t. |
| Zeichenkette (Literal) | 'C:\path' | Wird in einfache Anführungszeichen gesetzt. Es findet keinerlei Escaping statt, praktisch für Pfade mit Backslashes. |
| Ganzzahl | 42 | Standardmäßig dezimal; unterstützt auch 0x (hex), 0o (oktal), 0b (binär) sowie Unterstrich-Trenner wie 1_000. |
| Fließkommazahl | 3.14 | Exponentialschreibweise (1e10) sowie die Spezialwerte inf/nan sind ebenfalls gültig. |
| Wahrheitswert | true | Nur true oder false. Großgeschriebene Formen wie True sind ungültig. |
| Array | [1, 2, 3] | Durch Kommas getrennte Werte in eckigen Klammern. Ein abschließendes Komma ist erlaubt. |
| Tabelle | [server] | Jedes key = value-Paar nach einer Abschnitts-Überschrift gehört zu dieser Tabelle. |
| Tabellen-Array | [[fruits-basket]] | Durch Wiederholung desselben Tabellennamens wird ein Array ausgedrückt (z. B. mehrere Abhängigkeitsdefinitionen). |
| Datum/Uhrzeit | 1979-05-27T07:32:00Z | RFC-3339-Format — der einzige zusammengesetzte Wert, der ohne Anführungszeichen geschrieben werden kann. |
Tipps
- Es werden nur einzeilige Inline-Arrays und Inline-Tabellen unterstützt. Erstreckt sich Ihr Array über mehrere Zeilen, fassen Sie es vor dem Einfügen in einer Zeile zusammen.
- Der Formatierer normalisiert stets genau ein Leerzeichen auf jeder Seite von "=" und vereinheitlicht die Trennzeichen von Arrays/Inline-Tabellen zu ", ", wodurch Unterschiede zwischen verschiedenen Autoren ausgeglichen werden.
- Kommentare (alles nach #) bleiben erhalten; die einzige Änderung besteht darin, direkt nach "#" ein fehlendes Leerzeichen einzufügen — die Bearbeitung bleibt also minimal.
- Aufeinanderfolgende Leerzeilen werden zu einer einzigen zusammengefasst, wodurch die Grenzen zwischen Tabellen leichter erkennbar werden.
- Die gesamte Verarbeitung erfolgt vollständig in Ihrem Browser — nichts, was Sie hier einfügen, wird jemals an einen Server gesendet.
Häufig gestellte Fragen
[[section]]-Überschrift wird korrekt formatiert, jedoch werden wiederholte gleichnamige Abschnitte nicht wie bei einem vollständigen TOML-zu-JSON-Konverter zu einem einzigen array-artigen Objekt zusammengeführt. Prüfen Sie bei komplexen Tabellen-Array-Strukturen das zeilenweise formatierte Ergebnis visuell."""...""" und '''...''' werden derzeit nicht unterstützt, und die betreffende Zeile wird als Fehler gemeldet. Wandeln Sie längeren Text vor der Formatierung in eine einzeilige, escapte Zeichenkette um.
Übrigens – Warum TOML zur gemeinsamen Sprache der Konfigurationsdateien wurde
TOML wurde 2013 von GitHub-Mitbegründer Tom Preston-Werner entwickelt, und der ausgeschriebene Name „Tom's Obvious, Minimal Language" bringt das Designziel direkt auf den Punkt: ein Format, das für Maschinen so leicht zu parsen ist wie JSON, sich für Menschen aber völlig eindeutig lesen und schreiben lässt.
Der entscheidende Durchbruch kam, als Cargo, der Paketmanager von Rust, Cargo.toml als Manifestformat übernahm. Später führte PEP 518 pyproject.toml als Python-Packaging-Standard ein und vereinheitlichte damit das zuvor uneinheitliche Nebeneinander von setup.py, setup.cfg und requirements.txt.
Der größte Unterschied zu YAML besteht darin, dass TOML der Einrückung keinerlei Bedeutung beimisst. Bei YAML kann ein kleiner Einrückungsfehler die Datenstruktur unbemerkt verändern oder einen Syntaxfehler auslösen; TOML drückt Hierarchien dagegen ausschließlich über [section]-Überschriften und key = value-Paare aus, wodurch Copy-Paste-Fehler deutlich unwahrscheinlicher werden.
Dafür büßt TOML einen Teil der Ausdruckskraft von YAML ein: Es fehlen Anker/Aliase zur Wiederverwendung von Werten, und tief verschachtelte Strukturen werden umständlicher — viele Teams entscheiden sich daher je nach Datenform zwischen TOML, YAML und JSON.