TOML-validator
Valideer TOML-bestanden zoals Cargo.toml, pyproject.toml of Hugo- en Netlify-instellingen voordat een build erop vastloopt. De validator parseert de invoer volgens de TOML-specificatie en meldt de eerste fout met de regel, kolom en uitleg van de parser, waaronder dubbele sleutels, opnieuw gedefinieerde tabellen en onmogelijke datums. Bij geldige bestanden worden het aantal tabellen en sleutels en de sleutels op het hoogste niveau getoond, zodat u de structuur in één oogopslag kunt controleren.
Veelgestelde vragen
Wat controleert de TOML-validator?
De validator parseert sleutels, strings, getallen, booleans, datums en tijden, arrays, inline tabellen, tabellen en arrays van tabellen precies zoals gedefinieerd in de TOML-specificatie. Elke afwijking, zoals een ontbrekende waarde, een string zonder aanhalingstekens of een ongeldige escape, wordt als fout gemeld. Bij geldige bestanden wordt een korte samenvatting van de structuur getoond.
Welke informatie bevat een foutmelding?
Elke foutmelding toont de regel en kolom waar het parseren is gestopt en een regel met details van de parser, bijvoorbeeld een ongeldige datum of een poging om een al gedefinieerde tabel of waarde opnieuw te definiëren. Regels en kolommen beginnen bij 1. Alleen de eerste fout wordt getoond, omdat latere fouten vaak daaruit voortkomen.
Waarom wordt een sleutel of tabel gemeld als opnieuw gedefinieerd?
TOML staat niet toe dat dezelfde sleutel tweemaal in een tabel voorkomt, en een tabelkop zoals [server] mag maar één keer voorkomen. Ook het definiëren van een puntgescheiden sleutel zoals server.port na een [server]-tabel waarin port al is ingesteld, geldt als een herdefinitie. Voeg de vermeldingen op één plek samen om dit op te lossen.
Hoe worden tabellen en sleutels geteld?
Tables telt elke tabel onder de hoofdstructuur, inclusief inline tabellen en elke vermelding in een array van tabellen. Keys telt elke sleutel met een waarde die geen tabel of array van tabellen is, dus een lijst met strings telt als één sleutel. Top-level keys toont maximaal 50 namen van sleutels op het hoogste niveau.
Worden datums en tijden gecontroleerd?
Ja. Datums en tijden met een offset, lokale datums en tijden en lokale datums en tijden zonder datum worden allemaal gevalideerd, inclusief onmogelijke waarden zoals maand 13 of uur 25. Een datum in een ander formaat, bijvoorbeeld 05/27/1979, is geen TOML-datum en moet als string tussen aanhalingstekens staan.
Welke strings en escape-sequenties zijn toegestaan?
Strings tussen dubbele aanhalingstekens ondersteunen escapes zoals \n, \t, \" en \uXXXX; letterlijke strings tussen enkele aanhalingstekens nemen elk teken over zoals het is geschreven. Beide hebben ook vormen voor meerdere regels met drie aanhalingstekens. Een onbekende escape of een niet-afgesloten string wordt met de bijbehorende positie gemeld.
Worden zeer grote gehele getallen geaccepteerd?
Ja. Gehele getallen tot de 64-bitslimiet van de TOML-specificatie, zoals 9223372036854775807, worden geaccepteerd. Gehele getallen buiten dat bereik, voorloopnullen en underscores die niet tussen cijfers staan, zijn fouten.
Veroorzaakt een byte order mark of een Windows-regeleinde problemen?
Nee. Een UTF-8-byte order mark aan het begin wordt genegeerd en zowel LF- als CRLF-regeleinden worden geaccepteerd. Niet-geëscapete controletekens in strings worden als fouten gemeld.
Controleert de validator de betekenis van sleutels, zoals Cargo of Poetry dat zou doen?
Nee, de validator controleert alleen de syntaxis en structuur van TOML. Een bestand kan geldig TOML zijn en toch een sleutel bevatten die Cargo of een Python-buildbackend niet begrijpt. Gebruik de tool om syntaxisproblemen uit te sluiten voordat u de instellingen van specifieke tools controleert.
Hoe groot mag de invoer zijn en kan ik deze converteren?
Invoer kan maximaal 5 MiB groot zijn en geneste arrays en inline-tabellen kunnen tot 64 niveaus diep zijn. Gebruik de Data Format Converter om geldige TOML om te zetten naar JSON, YAML of een ander formaat.