TOML
2 nástrojů
TOML nástroje na ToolDecku vám umožňují formátovat, validovat a převádět TOML konfigurační soubory přímo v prohlížeči — bez instalace, bez účtu, bez nahrávání dat na jakýkoliv server. TOML Formatter parsuje váš TOML vstup a znovu ho serializuje s konzistentním odsazením, normalizovaným pořadím klíčů a inline chybami validace, které přesně určí syntaktické problémy. Konvertor TOML na JSON převádí TOML dokumenty na jejich JSON ekvivalenty a zachovává datové typy včetně datetime hodnot, inline tabulek a polí tabulek. Oba nástroje běží zcela na straně klienta, takže vaše konfigurační soubory — které často obsahují přihlašovací údaje k databázi, API endpointy a nasazovací tajné klíče — zůstávají na vašem počítači. Pokud potřebujete opačný směr převodu, konvertor JSON na TOML v kategorii JSON tuto konverzi zajistí.
Co jsou TOML nástroje?
TOML (Tom's Obvious, Minimal Language) je formát konfiguračních souborů postavený na explicitní a jednoznačné syntaxi. Vytvořil ho Tom Preston-Werner, spoluzakladatel GitHubu. TOML byl poprvé vydán v roce 2013 a specifikace verze 1.0 vyšla v lednu 2021. Formát se jednoznačně mapuje na hashovací tabulku: každý TOML soubor definuje strom párů klíč-hodnota organizovaných do tabulek (sekcí označených [závorkami]). Na rozdíl od YAML se TOML nespoléhá na odsazení pro určení struktury, čímž eliminuje celou třídu chyb parsování způsobených bílými znaky. Na rozdíl od JSON TOML podporuje komentáře, nativní typy datum/čas a víceřádkové řetězce — funkce, které konfigurační soubory potřebují, ale JSON nebyl navržen k jejich poskytování.
TOML nástroje automatizují mechanickou práci s čtením, validací a převodem TOML souborů. Formátovací nástroje normalizují odsazení a pořadí klíčů, aby konfigurační soubory zůstaly čitelné napříč týmem, i když stejný soubor upravuje více přispěvatelů. Konverzní nástroje překládají mezi TOML a JSON, což je užitečné, když knihovna nebo API očekává JSON vstup, ale zdrojem pravdy je TOML konfigurace. Validace zachytí syntaktické chyby — chybějící uzavírací závorka, duplicitní klíč nebo neplatný datetime literál — dříve, než způsobí selhání při spuštění aplikace.
Tyto úlohy se vyskytují často v Rust projektech (kde Cargo.toml je manifestem balíčku), při Python packaging (pyproject.toml nahradil setup.py jako standardní konfiguraci sestavení v PEP 518 a PEP 621), u Hugo statických webů (které používají TOML pro konfiguraci webu ve výchozím nastavení) a v jakékoli infrastrukturní konfiguraci ukládané v TOML souborech. Specifikace TOML je spravována na toml.io a parsery existují pro všechny hlavní programovací jazyky.
Proč používat TOML nástroje na ToolDecku?
TOML nástroje na ToolDecku parsují a zpracovávají vše uvnitř záložky prohlížeče pomocí JavaScriptu. Žádná konfigurační data nejsou přenášena na server, není vyžadován žádný účet a nástroje fungují offline po počátečním načtení stránky.
Případy použití TOML nástrojů
Formátování, validace a konverze TOML se vyskytují napříč různými rolemi a typy projektů. Rust vývojáři pracují s Cargo.toml denně. Python vývojáři konfigurují sestavení a nástroje prostřednictvím pyproject.toml. DevOps inženýři spravují konfiguraci aplikací, která se dodává jako TOML. Níže uvedené úlohy ukazují, kde prohlížečové TOML nástroje šetří čas ve srovnání s psaním jednorázového skriptu nebo instalací CLI nástroje.
Reference datových typů TOML
TOML v1.0 definuje následující datové typy. Každý typ se mapuje na konkrétní reprezentaci při převodu do JSON. Tabulka níže pokrývá syntaxi, příklady a chování konverze pro každý typ TOML.
| Typ | Syntaxe | Příklad | Mapování JSON |
|---|---|---|---|
| Řetězec | "..." nebo '...' | name = "TOML" | JSON string. Základní řetězce podporují escape sekvence (\n, \t, \u). Literální řetězce ('...') zacházejí se zpětnými lomítky jako s literálními znaky. |
| Celé číslo | číslice, 0x, 0o, 0b | port = 8080 | JSON number. Podporuje hexadecimální (0xDEAD), oktalové (0o755), binární (0b1010) a oddělovače podtržítkem (1_000). |
| Desetinné číslo | číslice s . nebo e | pi = 3.14159 | JSON number. Podporuje inf, -inf a nan (mapováno na null nebo řetězec v JSON, protože JSON nemá NaN). |
| Logická hodnota | true / false | enabled = true | JSON boolean. Platné jsou pouze malá písmena true a false. |
| Datum a čas s posunem | RFC 3339 | 2024-01-15T09:30:00Z | JSON string (ISO 8601). Obsahuje posun časového pásma. JSON nemá nativní typ datetime. |
| Lokální datum a čas | datum T čas | 2024-01-15T09:30:00 | JSON string. Bez informace o časovém pásmu. Vhodné pro časy podle nástěnných hodin. |
| Lokální datum | YYYY-MM-DD | 2024-01-15 | JSON string. Datum bez časové složky. |
| Lokální čas | HH:MM:SS | 09:30:00 | JSON string. Čas bez data nebo časového pásma. |
| Pole | [hodnota, ...] | ports = [8080, 8443] | JSON array. TOML pole mohou být heterogenní v TOML v1.0, ale musí být homogenní ve v0.5. |
| Tabulka | tomlCategoryContent.r10Syntax | [database] | JSON object. Standardní tabulky používají [závorky]. Inline tabulky používají složené závorky na jednom řádku. |
Specifikace TOML v1.0.0 (toml.io) je aktuální stabilní verze. Pole tabulek používají [[dvojité závorky]] pro definici opakovaných záznamů tabulky, které se mapují na JSON pole objektů.
Jak vybrat správný TOML nástroj
ToolDeck má tři nástroje pro práci s TOML soubory. Dva jsou v kategorii TOML a jeden je v kategorii JSON pro opačný směr konverze. Vyberte nástroj, který odpovídá vaší úloze.
- 1Pokud potřebujete znovu odsadit TOML soubor, normalizovat pořadí klíčů nebo validovat syntaxi TOML s hlášením chyb na úrovni řádků → TOML Formatter
- 2Pokud potřebujete převést konfigurační soubor TOML na JSON pro použití v API, skriptech nebo nástrojích, které očekávají JSON vstup → TOML to JSON Converter
- 3Pokud potřebujete převést JSON dokument do formátu TOML pro projekty, které používají TOML jako svůj konfigurační standard → JSON to TOML Converter
Pro každodenní práci s TOML zvládne TOML Formatter formátování i validaci v jednom kroku — vložte TOML a buď dostanete čistý výstup, nebo se dozvíte přesně, kde je syntaktická chyba. Když potřebujete propojit TOML a JSON, konvertor TOML na JSON zachovává všechny datové typy TOML včetně datetime hodnot a vnořených tabulek. Pro opačný směr (JSON na TOML) použijte konvertor JSON na TOML v kategorii JSON. Pokud ladíte konfiguraci, která se nepodaří parsovat, začněte s TOML Formatter: jeho chybové zprávy obsahují čísla řádků a popisy očekávaných tokenů, které jsou konkrétnější než to, co hlásí většina TOML parserů na úrovni aplikace.