Інструменти TOML від ToolDeck дозволяють форматувати, перевіряти та конвертувати конфігураційні файли TOML безпосередньо у браузері — без встановлення, облікового запису та передачі даних на будь-який сервер. TOML Formatter розбирає ваш TOML-код і серіалізує його заново з послідовними відступами, нормалізованим порядком ключів та вбудованими повідомленнями про синтаксичні помилки. Конвертер TOML у JSON перетворює TOML-документи на їх JSON-еквіваленти, зберігаючи типи даних, включно з датами й часом, вбудованими таблицями та масивами таблиць. Обидва інструменти працюють повністю на стороні клієнта, тому ваші конфігураційні файли — які нерідко містять облікові дані баз даних, API-ендпоінти та секрети розгортання — залишаються на вашому пристрої. Якщо вам потрібна зворотна конвертація, скористайтеся конвертером JSON у TOML у категорії JSON.
Що таке інструменти TOML?
TOML (Tom's Obvious, Minimal Language) — це формат конфігураційних файлів з явним і однозначним синтаксисом. Створений Томом Престон-Вернером, співзасновником GitHub, TOML вперше з'явився у 2013 році, а специфікація версії 1.0 вийшла у січні 2021 року. Формат однозначно відображається на хеш-таблицю: кожен TOML-файл визначає дерево пар ключ-значення, організованих у таблиці (розділи, позначені [квадратними дужками]). На відміну від YAML, TOML не покладається на відступи для визначення структури, що усуває цілий клас помилок парсингу, пов'язаних із пробілами. На відміну від JSON, TOML підтримує коментарі, нативні типи дати й часу та багаторядкові рядки — можливості, які потрібні конфігураційним файлам, але яких JSON ніколи не мав.
Інструменти TOML автоматизують рутинну роботу з читання, перевірки та конвертації TOML-файлів. Інструменти форматування нормалізують відступи та порядок ключів, щоб конфігураційні файли залишалися зрозумілими в команді навіть тоді, коли один файл редагують кілька розробників. Конвертери переводять дані між TOML і JSON, що корисно, коли бібліотека або API очікує JSON-вхід, але першоджерелом є TOML-конфігурація. Перевірка виявляє синтаксичні помилки — відсутню закриваючу дужку, дублікат ключа або недійсний літерал дати й часу — ще до того, як вони спричинять збій під час запуску застосунку.
Ці завдання часто виникають у Rust-проєктах (де Cargo.toml є маніфестом пакету), пакуванні Python (pyproject.toml замінив setup.py як стандартну конфігурацію збірки у PEP 518 та PEP 621), статичних сайтах Hugo (які за замовчуванням використовують TOML для конфігурації сайту) та будь-якому налаштуванні інфраструктури, що зберігає конфігурацію у TOML-файлах. Специфікація TOML підтримується на toml.io, а парсери існують для всіх основних мов програмування.
Чому варто використовувати інструменти TOML на ToolDeck?
Інструменти TOML від ToolDeck розбирають і обробляють усе всередині вашої вкладки браузера за допомогою JavaScript. Жодні конфігураційні дані не передаються на сервер, обліковий запис не потрібен, а інструменти працюють офлайн після першого завантаження сторінки.
🔒Приватність за замовчуванням
Конфігураційні файли часто містять чутливі значення — URL баз даних, API-ключі, цілі розгортання. ToolDeck обробляє TOML повністю на стороні клієнта, тому нічого не виходить за межі браузера. Безпечно для приватних проєктів та внутрішніх конфігурацій інфраструктури.
⚡Миттєвий зворотний зв'язок
Вставте TOML — і одразу отримайте відформатований вивід або JSON. Синтаксичні помилки відображаються з номерами рядків і описами. Не потрібно чекати встановлення CLI-інструменту або виконання кроку збірки.
🔄Точне перетворення типів
Конвертер TOML у JSON зберігає специфічні для TOML типи, як-от дати й час зі зміщенням, локальні дати та локальний час, перетворюючи їх на рядки ISO 8601. Точність цілих чисел і чисел із плаваючою комою зберігається. Масиви таблиць коректно відображаються на JSON-масиви об'єктів.
🌐Не потребує встановлення
Працює на будь-якому пристрої з сучасним браузером. Зручно, коли ви переглядаєте pull request на машині без звичного середовища розробки або коли потрібно швидко перевірити TOML-файл колеги.
Сценарії використання інструментів TOML
Форматування, перевірка та конвертація TOML виникають у різних ролях та типах проєктів. Rust-розробники щодня працюють із Cargo.toml. Python-розробники налаштовують збірку та інструменти через pyproject.toml. DevOps-інженери керують конфігурацією застосунків у форматі TOML. Наведені нижче завдання показують, де браузерні інструменти TOML економлять час порівняно з написанням одноразового скрипту або встановленням CLI-інструменту.
Очищення Cargo.toml
Після злиття кількох змін із додаванням залежностей файл Cargo.toml Rust-проєкту має непослідовне форматування. Запустіть його через
TOML Formatter, щоб нормалізувати відступи та порядок ключів перед фіксацією змін.
pyproject.toml у JSON
Конвеєр CI потребує метаданих збірки у форматі JSON, але першоджерелом є pyproject.toml. Використайте
TOML to JSON Converter, щоб отримати JSON-представлення та перевірити відображення перед тим, як автоматизувати конвертацію в конвеєрі.
Міграція конфігурації
Перенесення застосунку з конфігурації на основі JSON на TOML (або навпаки).
TOML to JSON Converter дозволяє порівнювати обидва представлення поруч, щоб переконатися, що типи даних, вкладені структури та семантика масивів збережені.
Налагодження синтаксису
TOML-конфігураційний файл не вдається розібрати під час запуску застосунку з незрозумілим повідомленням про помилку. Вставте його у
TOML Formatter, щоб отримати конкретні номери рядків і стовпців для синтаксичної помилки, а також опис того, що очікував парсер.
Генерація документації
Написання документації, яка містить приклади конфігурації у форматах TOML і JSON. Конвертуйте канонічний TOML-приклад через
TOML to JSON Converter, щоб обидві версії залишалися синхронізованими без ручного передруку.
Вивчення синтаксису TOML
Розробники, які тільки знайомляться з TOML, можуть експериментувати з форматом, пишучи TOML у
TOML Formatter, спостерігаючи помилки перевірки в реальному часі та порівнюючи структуру з відформатованим виводом. Це швидше, ніж читати лише специфікацію.
Довідник типів даних TOML
TOML v1.0 визначає наступні типи даних. Кожен тип відображається на конкретне представлення при конвертації у JSON. Таблиця нижче охоплює синтаксис, приклади та поведінку конвертації для кожного типу TOML.
| Тип | Синтаксис | Приклад | Відображення у JSON |
|---|
| Рядок | "..." або '...' | name = "TOML" | JSON-рядок. Базові рядки підтримують керуючі послідовності (\n, \t, \u). Літеральні рядки ('...') сприймають зворотні слеші як звичайні символи. |
| Ціле число | цифри, 0x, 0o, 0b | port = 8080 | JSON-число. Підтримує шістнадцяткові (0xDEAD), вісімкові (0o755), двійкові (0b1010) та розділені підкресленнями (1_000) значення. |
| Число з плаваючою комою | цифри з . або e | pi = 3.14159 | JSON-число. Підтримує inf, -inf та nan (відображається на null або рядок у JSON, оскільки JSON не має NaN). |
| Булеве значення | true / false | enabled = true | JSON-булеве значення. Допустимі лише рядкові true та false. |
| Дата-час зі зміщенням | RFC 3339 | 2024-01-15T09:30:00Z | JSON-рядок (ISO 8601). Включає зміщення часового поясу. JSON не має нативного типу дати й часу. |
| Локальна дата-час | дата T час | 2024-01-15T09:30:00 | JSON-рядок. Без інформації про часовий пояс. Корисно для місцевого часу. |
| Локальна дата | YYYY-MM-DD | 2024-01-15 | JSON-рядок. Дата без компонента часу. |
| Локальний час | HH:MM:SS | 09:30:00 | JSON-рядок. Час без дати або часового поясу. |
| Масив | [значення, ...] | ports = [8080, 8443] | JSON-масив. Масиви TOML можуть бути різнорідними у TOML v1.0, але мають бути однорідними у v0.5. |
| Таблиця | tomlCategoryContent.r10Syntax | [database] | JSON-об'єкт. Стандартні таблиці використовують [дужки]. Вбудовані таблиці використовують фігурні дужки в одному рядку. |
Специфікація TOML v1.0.0 (toml.io) є поточною стабільною версією. Масиви таблиць використовують [[подвійні дужки]] для визначення повторюваних записів таблиці, відображаючись на JSON-масиви об'єктів.
Як обрати правильний інструмент TOML
ToolDeck має три інструменти для роботи з TOML-файлами. Два знаходяться в категорії TOML, а один — у категорії JSON для зворотної конвертації. Виберіть інструмент, що відповідає вашому завданню.
- 1
Якщо вам потрібно переформатувати відступи TOML-файлу, нормалізувати порядок ключів або перевірити синтаксис TOML з повідомленнями про помилки на рівні рядків → TOML Formatter - 2
Якщо вам потрібно конвертувати конфігураційний TOML-файл у JSON для використання в API, скриптах або інструментах, що очікують JSON-вхід → TOML to JSON Converter - 3
Якщо вам потрібно конвертувати JSON-документ у формат TOML для проєктів, що використовують TOML як стандарт конфігурації → JSON to TOML Converter
Для повсякденної роботи з TOML інструмент TOML Formatter виконує форматування та перевірку за один крок — вставте ваш TOML, і він або видасть чистий результат, або точно вкаже місце синтаксичної помилки. Коли потрібно перетворювати дані між TOML і JSON, конвертер TOML to JSON Converter зберігає всі типи даних TOML, включно з датами й часом та вкладеними таблицями. Для зворотної конвертації (JSON у TOML) використовуйте конвертер JSON to TOML Converter у категорії JSON. Якщо ви налагоджуєте конфігурацію, яка не розбирається, почніть із TOML Formatter: його повідомлення про помилки містять номери рядків та описи очікуваних токенів, що є більш конкретними, ніж те, що зазвичай повідомляють парсери TOML на рівні застосунку.
Часті запитання
У чому різниця між TOML і YAML?
TOML використовує явний синтаксис із дужками для таблиць і не покладається на відступи для визначення структури. YAML використовує відступи для визначення ієрархії, що робить його чутливим до помилок із пробілами — один неправильно розміщений пробіл може повністю змінити розібрану структуру. TOML також має нативні типи дати й часу та забороняє дублікати ключів, тоді як YAML мовчки використовує останнє значення, коли ключ зустрічається двічі. TOML зазвичай надається перевага для конфігурації застосунків, тоді як YAML більш поширений у маніфестах Kubernetes та визначеннях конвеєрів CI/CD, де корисна підтримка кількох документів і прив'язки/псевдоніми.
У чому різниця між TOML і JSON?
JSON — це формат обміну даними, призначений для зв'язку між машинами. TOML — це формат конфігурації, призначений для читання та редагування людьми. TOML підтримує коментарі (рядки, що починаються з #), нативні типи дати й часу, багаторядкові рядки та таблиці, що зменшують глибину вкладеності. JSON не підтримує коментарі, не має типу дати та вимагає явної вкладеності з фігурними дужками. JSON — правильний вибір для корисного навантаження API та зберігання даних; TOML — правильний вибір для конфігураційних файлів, які люди редагують вручну.
Чи може TOML представляти всі структури даних JSON?
TOML може представляти більшість структур JSON, але є граничні випадки. TOML не підтримує значення null — у TOML немає еквіваленту JSON null. Ключі TOML мають бути рядками, що відповідає ключам об'єктів JSON. Масиви TOML були обмежені однорідними типами у v0.5, але TOML v1.0 дозволяє масиви зі змішаними типами. Глибоко вкладені JSON-об'єкти можуть стати громіздкими у TOML, оскільки кожен рівень вкладеності вимагає окремого заголовка таблиці.
Які проєкти використовують TOML для конфігурації?
Система збірки Cargo мови Rust використовує Cargo.toml як маніфест пакету. Python прийняв pyproject.toml як стандартний конфігураційний файл збірки через PEP 518 (2016) та PEP 621 (2020). Hugo, генератор статичних сайтів, за замовчуванням використовує TOML для конфігурації сайту. InfluxDB використовує TOML для конфігурації сервера. Модульна система Go розглядала TOML, але обрала власний формат; однак багато Go-проєктів досі використовують TOML для конфігурації на рівні застосунку через бібліотеки на кшталт BurntSushi/toml та pelletier/go-toml.
Як TOML обробляє коментарі?
TOML підтримує коментарі на цілий рядок та кінці рядків за допомогою символу #. Усе від # до кінця рядка ігнорується парсером. Коментарі не можуть з'являтися всередині багаторядкових базових рядків або багаторядкових літеральних рядків. При конвертації TOML у JSON коментарі відкидаються, оскільки JSON не має синтаксису коментарів. Це означає, що при переведенні TOML у JSON і назад у TOML усі коментарі з оригінального файлу будуть втрачені.
Що таке масиви таблиць у TOML?
Масиви таблиць використовують синтаксис [[подвійних дужок]] для визначення повторюваних записів однієї структури таблиці. Наприклад, [[servers]], що з'являється двічі, створює масив із двома об'єктами сервера. У JSON це відображається на масив об'єктів. Масиви таблиць зазвичай використовуються для списків залежностей, визначень серверів або конфігурацій плагінів, де кожен запис має однаковий набір ключів.
Чи чутливий TOML до пробілів?
TOML не є чутливим до відступів. Відступи суто декоративні та не впливають на парсинг. Однак TOML вимагає переведення рядка для розділення пар ключ-значення — не можна розмістити дві пари ключ-значення в одному рядку (крім випадків всередині вбудованих таблиць). Вбудовані таблиці мають уміщатися в одному рядку і не можуть містити переводів рядка. Таке рішення дозволяє уникнути помилок на основі відступів, які часто трапляються у YAML-файлах.
Що відбувається зі значеннями дати й часу TOML при конвертації у JSON?
JSON не має нативного типу дати й часу, тому значення дат і часу TOML конвертуються у рядки ISO 8601. Дати й час зі зміщенням (наприклад, 2024-01-15T09:30:00Z) зберігають зміщення часового поясу в рядковому представленні. Локальні дати й час, локальні дати та локальний час серіалізуються як рядки без інформації про часовий пояс. Конвертація є беззбитковою в тому сенсі, що оригінальне значення можна розібрати назад із рядка, але споживач JSON повинен знати, що ці рядки є датами, а не довільним текстом.