Форматировщик и валидатор TOML
Вставьте TOML, форматируйте в каноническом виде TOML 1.0 или валидируйте синтаксис. Без загрузки.
- Вставьте свой TOML в текстовое поле слева.
- Нажмите «Форматировать», чтобы пропустить через @iarna/toml и получить канонический вид.
- Нажмите «Валидировать», чтобы проверить синтаксис без изменения ввода.
- Ошибки указывают на проблемную строку и столбец.
Что это делает?
Парсит ваш TOML с помощью @iarna/toml в режиме TOML 1.0 и заново выводит в каноническом виде — ключи перед под-таблицами, согласованное экранирование, удаление подчёркиваний целых чисел. Кнопка «Валидировать» проверяет синтаксис по спецификации без изменения ввода. Комментарии теряются при цикле (форматировщики TOML обычно не могут сохранить их через цикл parse-and-dump).
Пример
Беспорядочный TOML-ввод:
[server]
host="localhost"
port=8080
name="myapp" Отформатированный вывод:
name = "myapp"
[server]
host = "localhost"
port = 8080 Типичные ошибки TOML и как их исправить
У TOML 1.0 более строгие правила, чем у YAML или JSON. Шаблоны ниже покрывают большинство сбоев парсера.
- Неэкранированные строки. `name = Ada` невалиден. Используйте двойные кавычки: `name = "Ada"`.
- Переопределение таблицы. Определять `[a]` дважды — ошибка. Каждый заголовок таблицы должен встречаться максимум один раз. Объедините ключи в один блок `[a]`.
- Ключи верхнего уровня после таблицы. Как только вы пишете `[section]`, все последующие ключи принадлежат этой секции. Ключи должны идти до их первого заголовка таблицы. Форматировщик переупорядочивает это за вас, но исходный ввод должен быть валидным.
- Date-time без часового пояса. `d = 2026-04-26T12:00:00` (без Z или смещения) — это «локальная date-time». Она парсится, но потребители стиля JSON могут не иметь способа представить локальность. Используйте `2026-04-26T12:00:00Z` для UTC.
- Расширение inline-таблицы. Inline-таблицы `point = {x=1, y=2}` закрыты и самодостаточны. Нельзя позже написать `point.z = 3`. Используйте обычный синтаксис блока `[point]` для расширения.
- Путаница с экранированием тройных кавычек. `"""..."""` (базовая многострочная) обрабатывает экранирование; `\'\'\'...\'\'\'` (литеральная многострочная) — нет. Смешивание этих двух — самая частая ошибка многострочных строк.
Часто задаваемые вопросы
Меняет ли форматирование мои данные?
Только вид — ключи переупорядочиваются, чтобы примитивы шли перед под-таблицами (правило TOML), пробелы нормализуются, подчёркивания целых чисел удаляются (семантика TOML). Сами значения не меняются.
Сохраняются ли TOML-комментарии?
Нет. @iarna/toml отбрасывает комментарии при цикле parse-and-dump. Если нужно форматирование с сохранением комментариев, понадобится другая библиотека, сохраняющая позицию в исходнике.
Валидирует ли это против TOML 1.0?
Да. @iarna/toml следует TOML 1.0 — включая разрешение массивов смешанных типов, точечных ключей и пересмотренных правил строк. Входы, зависящие от поведения только TOML 0.5 (требующего однородных массивов), здесь всё ещё парсятся, но могут ломаться на более строгих парсерах 0.5.
Какого размера TOML-файл это может обработать?
До примерно 30 МБ, прежде чем текстовое поле замедлится. Большинство конфигов сильно меньше 1 МБ.
Загружается ли мой TOML?
Нет. Всё работает в вашем браузере — ваш ввод парсится и сериализуется JavaScript на этой странице и не отправляется ни на какой сервер.
Почему форматировщик переупорядочивает мои ключи?
TOML 1.0 требует, чтобы ключи верхнего уровня (примитивы) появлялись до любого заголовка таблицы в той же области видимости. Форматировщик обеспечивает это, ставя примитивы перед под-таблицами. Если у исходного ввода был другой порядок, шаг форматирования его нормализует.