ToolDeck

TOML

2 tools

De TOML-tools van ToolDeck stellen u in staat TOML-configuratiebestanden direct in uw browser te formatteren, valideren en converteren — zonder installatie, zonder account en zonder dat er gegevens naar een server worden verzonden. De TOML Formatter parseert uw TOML-invoer en serialiseert deze opnieuw met consistente inspringing, genormaliseerde sleutelvolgorde en inline validatiefouten die syntaxisproblemen nauwkeurig aanwijzen. De TOML to JSON Converter transformeert TOML-documenten naar hun JSON-equivalent, waarbij gegevenstypen inclusief datumtijden, inline-tabellen en tabelarrays worden behouden. Beide tools draaien volledig aan de clientzijde, zodat uw configuratiebestanden — die vaak databasegegevens, API-eindpunten en implementatiegeheimen bevatten — op uw machine blijven. Als u de omgekeerde richting nodig heeft, regelt de JSON to TOML Converter in de JSON-categorie die conversie.

Wat zijn TOML-tools?

TOML (Tom's Obvious, Minimal Language) is een configuratiebestandsformaat gebouwd rond expliciete, ondubbelzinnige syntaxis. Gemaakt door Tom Preston-Werner, medeoprichter van GitHub, werd TOML voor het eerst uitgebracht in 2013 en bereikte zijn 1.0-specificatie in januari 2021. Het formaat wordt ondubbelzinnig omgezet naar een hashtabel: elk TOML-bestand definieert een boom van sleutel-waardeparen georganiseerd in tabellen (secties aangeduid met [haakjes]). In tegenstelling tot YAML is TOML niet afhankelijk van inspringing voor structuur, waardoor een gehele klasse van witruimtegerelateerde parseerproblemen wordt geëlimineerd. In tegenstelling tot JSON ondersteunt TOML opmerkingen, native datum/tijd-typen en meerregelige tekenreeksen — functies die configuratiebestanden nodig hebben maar waarvoor JSON nooit is ontworpen.

TOML-tools automatiseren het mechanische werk van het lezen, valideren en converteren van TOML-bestanden. Formatteringstools normaliseren inspringing en sleutelvolgorde zodat configuratiebestanden leesbaar blijven binnen een team, ook wanneer meerdere bijdragers hetzelfde bestand bewerken. Conversietools vertalen tussen TOML en JSON, wat handig is wanneer een bibliotheek of API JSON-invoer verwacht maar uw bron van waarheid een TOML-configuratie is. Validatie detecteert syntaxisfouten — een ontbrekend sluitend haakje, een dubbele sleutel of een ongeldige datumtijdliteral — voordat ze fouten veroorzaken bij het opstarten van de applicatie.

Deze taken komen regelmatig voor in Rust-projecten (waar Cargo.toml het pakketmanifest is), Python-packaging (pyproject.toml verving setup.py als standaard buildconfiguratie in PEP 518 en PEP 621), Hugo-statische sites (die standaard TOML gebruiken voor siteconfiguratie) en elke infrastructuurinstelling die configuratie opslaat in TOML-bestanden. De TOML-specificatie wordt onderhouden op toml.io en parsers zijn beschikbaar voor alle grote programmeertalen.

Waarom TOML-tools gebruiken op ToolDeck?

De TOML-tools van ToolDeck parseren en verwerken alles binnen uw browsertabblad met JavaScript. Er worden geen configuratiegegevens naar een server verzonden, er is geen account vereist en de tools werken offline na het eerste laden van de pagina.

🔒
Standaard privé
Configuratiebestanden bevatten vaak gevoelige waarden — database-URL's, API-sleutels, implementatiedoelen. ToolDeck verwerkt TOML volledig aan de clientzijde, zodat er niets uw browser verlaat. Veilig voor bedrijfseigen projecten en interne infrastructuurconfiguraties.
Directe feedback
Plak TOML en zie direct geformatteerde uitvoer of JSON. Syntaxisfouten worden gerapporteerd met regelnummers en beschrijvingen. Geen wachten tot een CLI-tool is geïnstalleerd of een bouwstap is voltooid.
🔄
Nauwkeurige typeconversie
De TOML to JSON converter behoudt TOML-specifieke typen zoals offset datumtijden, lokale datums en lokale tijden als ISO 8601-tekenreeksen. Integer- en float-precisie blijft behouden. Tabelarrays worden correct omgezet naar JSON-arrays van objecten.
🌐
Geen installatie vereist
Werkt op elk apparaat met een moderne browser. Handig wanneer u een pull request beoordeelt op een machine zonder uw gebruikelijke ontwikkelomgeving, of wanneer u snel het TOML-bestand van een collega wilt valideren.

Gebruiksscenario's voor TOML-tools

TOML-formattering, validatie en conversie komen voor in verschillende rollen en projecttypen. Rust-ontwikkelaars werken dagelijks met Cargo.toml. Python-ontwikkelaars configureren builds en tools via pyproject.toml. DevOps-engineers beheren applicatieconfiguratie die als TOML wordt geleverd. De onderstaande taken laten zien waar browsergebaseerde TOML-tools tijd besparen vergeleken met het schrijven van een eenmalig script of het installeren van een CLI-tool.

Cargo.toml opschonen
Na het samenvoegen van meerdere afhankelijkheidstussenvoegingen heeft een Rust-project's Cargo.toml inconsistente opmaak. Voer het door de TOML Formatter om inspringing en sleutelvolgorde te normaliseren vóór het vastleggen.
pyproject.toml naar JSON
Een CI-pipeline heeft buildmetadata in JSON-formaat nodig, maar de bron van waarheid is pyproject.toml. Gebruik de TOML to JSON Converter om de JSON-representatie te genereren en de mapping te verifiëren voordat u de conversie in uw pipeline script.
Configuratiemigratie
Een applicatie verplaatsen van JSON-gebaseerde configuratie naar TOML (of omgekeerd). Met de TOML to JSON Converter kunt u de twee representaties naast elkaar vergelijken om te bevestigen dat gegevenstypen, geneste structuren en arraysemantiek worden behouden.
Syntaxisfoutopsporing
Een TOML-configuratiebestand kan niet worden geparseerd bij het opstarten van de applicatie met een onduidelijke foutmelding. Plak het in de TOML Formatter om specifieke regel- en kolomnummers voor de syntaxisfout te krijgen, plus een beschrijving van wat de parser verwachtte.
Documentatieopwekking
Documentatie schrijven die configuratievoorbeelden bevat in zowel TOML- als JSON-formaat. Converteer het canonieke TOML-voorbeeld via de TOML to JSON Converter zodat beide versies gesynchroniseerd blijven zonder handmatige transcriptie.
TOML-syntaxis leren
Ontwikkelaars die nieuw zijn in TOML kunnen experimenteren met het formaat door TOML te schrijven in de TOML Formatter, validatiefouten in realtime te zien en de structuur te vergelijken met de geformatteerde uitvoer. Dit is sneller dan alleen de specificatie lezen.

Referentie TOML-gegevenstypen

TOML v1.0 definieert de volgende gegevenstypen. Elk type wordt op een specifieke manier weergegeven wanneer het naar JSON wordt geconverteerd. De onderstaande tabel behandelt de syntaxis, voorbeelden en conversievertooning voor elk TOML-type.

TypeSyntaxisVoorbeeldJSON-mapping
String"..." of '...'name = "TOML"JSON-tekenreeks. Basistekenreeksen ondersteunen escape-sequenties (\n, \t, \u). Letterlijke tekenreeksen ('...') behandelen backslashes als letterlijke tekens.
Integercijfers, 0x, 0o, 0bport = 8080JSON-getal. Ondersteunt hexadecimaal (0xDEAD), octaal (0o755), binair (0b1010) en onderstrepingstekenseparatoren (1_000).
Floatcijfers met . of epi = 3.14159JSON-getal. Ondersteunt inf, -inf en nan (omgezet naar null of tekenreeks in JSON, omdat JSON geen NaN heeft).
Booleantrue / falseenabled = trueJSON-boolean. Alleen kleine letters true en false zijn geldig.
Offset Date-TimeRFC 33392024-01-15T09:30:00ZJSON-tekenreeks (ISO 8601). Bevat tijdzoneoffset. Geen native JSON-datumtijdtype.
Local Date-Timedatum T tijd2024-01-15T09:30:00JSON-tekenreeks. Geen tijdzone-informatie. Handig voor wandkloktijden.
Local DateJJJJ-MM-DD2024-01-15JSON-tekenreeks. Datum zonder tijdcomponent.
Local TimeUU:MM:SS09:30:00JSON-tekenreeks. Tijd zonder datum of tijdzone.
Array[waarde, ...]ports = [8080, 8443]JSON-array. TOML-arrays kunnen heterogeen zijn in TOML v1.0 maar moeten homogeen zijn in v0.5.
TabletomlCategoryContent.r10Syntax[database]JSON-object. Standaardtabellen gebruiken [haakjes]. Inline-tabellen gebruiken accolades op één regel.

TOML v1.0.0-specificatie (toml.io) is de huidige stabiele versie. Tabelarrays gebruiken [[dubbele haakjes]] om herhaalde tabelitems te definiëren, die worden omgezet naar JSON-arrays van objecten.

De juiste TOML-tool kiezen

ToolDeck heeft drie tools die werken met TOML-bestanden. Twee staan in de TOML-categorie en één staat in de JSON-categorie voor de omgekeerde conversierichting. Kies de tool die bij uw taak past.

  1. 1
    Als u nodig heeft om een TOML-bestand opnieuw in te springen, sleutelvolgorde te normaliseren of TOML-syntaxis te valideren met foutrapportage op regelniveauTOML Formatter
  2. 2
    Als u nodig heeft om een TOML-configuratiebestand te converteren naar JSON voor gebruik in API's, scripts of tools die JSON-invoer verwachtenTOML to JSON Converter
  3. 3
    Als u nodig heeft om een JSON-document te converteren naar TOML-formaat voor projecten die TOML als hun configuratiestandaard gebruikenJSON to TOML Converter

Voor dagelijks TOML-werk regelt de TOML Formatter formattering en validatie in één stap — plak uw TOML en het produceert ofwel schone uitvoer of vertelt u precies waar de syntaxisfout zit. Wanneer u TOML en JSON wilt overbruggen, behoudt de TOML to JSON Converter alle TOML-gegevenstypen inclusief datumtijden en geneste tabellen. Voor de omgekeerde richting (JSON naar TOML) gebruikt u de JSON to TOML Converter in de JSON-categorie. Als u een configuratie debugt die niet kan worden geparseerd, begin dan met de TOML Formatter: de foutmeldingen bevatten regelnummers en beschrijvingen van verwachte tokens die specifieker zijn dan wat de meeste TOML-parsers op applicatieniveau rapporteren.

Veelgestelde vragen

Wat is het verschil tussen TOML en YAML?
TOML gebruikt expliciete haakjessyntaxis voor tabellen en is niet afhankelijk van inspringing voor structuur. YAML gebruikt inspringing om hiërarchie te definiëren, waardoor het gevoelig is voor witruimtefouten — één verkeerd geplaatste spatie kan de geparseerde structuur volledig veranderen. TOML heeft ook native datum/tijd-typen en verbiedt dubbele sleutels, terwijl YAML stilzwijgend de laatste waarde gebruikt wanneer een sleutel tweemaal voorkomt. TOML heeft over het algemeen de voorkeur voor applicatieconfiguratie, terwijl YAML vaker voorkomt in Kubernetes-manifesten en CI/CD-pijplijndefinities waar de ondersteuning voor meerdere documenten en ankers/aliassen nuttig zijn.
Wat is het verschil tussen TOML en JSON?
JSON is een gegevensuitwisselingsformaat ontworpen voor machine-naar-machine communicatie. TOML is een configuratieformaat ontworpen om door mensen te worden gelezen en bewerkt. TOML ondersteunt opmerkingen (regels die beginnen met #), native datumtijdtypen, meerregelige tekenreeksen en tabellen die de nesting-diepte verminderen. JSON ondersteunt geen opmerkingen, heeft geen datumtype en vereist expliciete nesting met accolades. JSON is de juiste keuze voor API-payloads en gegevensopslag; TOML is de juiste keuze voor configuratiebestanden die mensen handmatig bewerken.
Kan TOML alle JSON-datastructuren vertegenwoordigen?
TOML kan de meeste JSON-structuren vertegenwoordigen, maar er zijn randgevallen. TOML ondersteunt geen null-waarden — er is geen TOML-equivalent voor JSON null. TOML-sleutels moeten tekenreeksen zijn, wat overeenkomt met JSON-objectsleutels. TOML-arrays waren beperkt tot homogene typen in v0.5, maar TOML v1.0 staat gemengde typen arrays toe. Diep geneste JSON-objecten kunnen uitgebreid worden in TOML omdat elk nestingniveau een afzonderlijke tabelkoptekst vereist.
Welke projecten gebruiken TOML voor configuratie?
Het Cargo-buildsysteem van Rust gebruikt Cargo.toml als zijn pakketmanifest. Python nam pyproject.toml over als het standaard buildconfiguratiebestand via PEP 518 (2016) en PEP 621 (2020). Hugo, de statische sitegenerator, gebruikt standaard TOML voor siteconfiguratie. InfluxDB gebruikt TOML voor zijn serverconfiguratie. Het Go-modulesysteem overwoog TOML maar koos voor een eigen formaat; veel Go-projecten gebruiken TOML echter nog steeds voor applicatieniveauconfiguratie via bibliotheken zoals BurntSushi/toml en pelletier/go-toml.
Hoe verwerkt TOML opmerkingen?
TOML ondersteunt volledige regelopmerkingen en einde-van-regelopmerkingen met het #-teken. Alles van # tot het einde van de regel wordt genegeerd door de parser. Opmerkingen kunnen niet voorkomen in meerregelige basistekenreeksen of meerregelige letterlijke tekenreeksen. Bij het converteren van TOML naar JSON worden opmerkingen verwijderd omdat JSON geen opmerkingssyntaxis heeft. Dit betekent dat een round-trip van TOML naar JSON en terug naar TOML alle opmerkingen uit het oorspronkelijke bestand verliest.
Wat zijn tabelarrays in TOML?
Tabelarrays gebruiken [[dubbele haakjes]] syntaxis om herhaalde items van dezelfde tabelstructuur te definiëren. Zo creëert [[servers]] dat tweemaal voorkomt een array met twee serverobjecten. In JSON wordt dit omgezet naar een array van objecten. Tabelarrays worden vaak gebruikt voor lijsten van afhankelijkheden, serverdefinities of plugin-configuraties waarbij elke vermelding dezelfde set sleutels heeft.
Is TOML witruimtegevoelig?
TOML is niet inspringgevoelig. Inspringing is puur cosmetisch en heeft geen invloed op het parseren. TOML vereist echter wel nieuwe regels om sleutel-waardeparen van elkaar te scheiden — u kunt geen twee sleutel-waardeparen op dezelfde regel plaatsen (behalve in inline-tabellen). Inline-tabellen moeten op één regel passen en mogen geen nieuwe regels bevatten. Dit ontwerp vermijdt de inspringgerelateerde bugs die veelvoorkomend zijn in YAML-bestanden.
Wat gebeurt er met TOML-datumtijdwaarden bij conversie naar JSON?
JSON heeft geen native datumtijdtype, dus TOML-datumtijden worden geconverteerd naar ISO 8601-tekenreeksen. Offset datumtijden (zoals 2024-01-15T09:30:00Z) behouden hun tijdzoneoffset in de tekenreeksrepresentatie. Lokale datumtijden, lokale datums en lokale tijden worden elk geserialiseerd als tekenreeksen zonder tijdzone-informatie. De conversie is verliesvrij in de zin dat de oorspronkelijke waarde terug kan worden geparseerd uit de tekenreeks, maar de JSON-consument moet weten dat deze tekenreeksen als datums moeten worden behandeld en niet als willekeurige tekst.