# Валидатор TOML

Проверяйте файлы TOML, например Cargo.toml, pyproject.toml или настройки Hugo и Netlify, до того, как из-за них сорвётся сборка. Валидатор разбирает входные данные согласно спецификации TOML и сообщает о первой ошибке, указывая строку, столбец и пояснение парсера, в том числе для дублирующихся ключей, повторно объявленных таблиц и невозможных дат. Для корректных файлов отображаются число таблиц и ключей, а также ключи верхнего уровня — так вы сможете быстро оценить структуру.

## Часто задаваемые вопросы

### Что проверяет валидатор TOML?

Он разбирает ключи, строки, числа, логические значения, даты и время, массивы, встроенные таблицы, таблицы и массивы таблиц в точном соответствии со спецификацией TOML. Любое отклонение, например отсутствие значения, строка без кавычек или неверная escape-последовательность, сообщается как ошибка. Для корректных файлов выводится краткая сводка их структуры.

### Какая информация приводится в сообщении об ошибке?

Для каждой ошибки указываются строка и столбец, на которых разбор остановился, а также пояснение парсера, например «некорректная дата» или попытка повторно определить уже объявленную таблицу или значение. Нумерация строк и столбцов начинается с 1. Отображается только первая ошибка, поскольку последующие часто вызваны ею.

### Почему ключ или таблица отмечены как повторно определённые?

TOML не допускает повторения одного ключа в таблице, а заголовок таблицы, например [server], может встречаться только один раз. Определение ключа с точкой, например server.port, после таблицы [server], в которой уже задан port, тоже считается повторным определением. Чтобы исправить это, объедините записи в одном месте.

### Как подсчитываются таблицы и ключи?

В число таблиц входят все таблицы ниже корневого уровня, в том числе встроенные таблицы и каждый элемент массива таблиц. В число ключей входит каждый ключ со значением, которое не является таблицей или массивом таблиц; список строк считается одним ключом. В списке ключей верхнего уровня приводятся имена ключей в корне, максимум 50.

### Проверяются ли даты и время?

Да. Проверяются дата и время со смещением, локальные дата и время, локальная дата и локальное время, включая невозможные значения, например месяц 13 или час 25. Дата в другом формате, например 05/27/1979, не является датой TOML, поэтому её нужно заключить в кавычки как строку.

### Какие строки и escape-последовательности допускаются?

В базовых строках в двойных кавычках поддерживаются escape-последовательности, например \n, \t, \" и \uXXXX, а в буквальных строках в одинарных кавычках каждый символ воспринимается буквально. Для обоих видов предусмотрена многострочная форма с тремя кавычками. Неизвестная escape-последовательность или незакрытая строка указываются вместе с их позицией.

### Допускаются ли очень большие целые числа?

Да. Допускаются целые числа в пределах 64-битного ограничения спецификации TOML, например 9223372036854775807. Числа за пределами этого диапазона, ведущие нули и подчёркивания, не стоящие между цифрами, считаются ошибками.

### Могут ли возникнуть проблемы из-за метки порядка байтов или окончания строки Windows?

Нет. Метка порядка байтов UTF-8 в начале игнорируется, а окончания строк LF и CRLF принимаются. Неэкранированные управляющие символы внутри строк считаются ошибками.

### Проверяется ли смысл ключей, как это делают Cargo или Poetry?

Нет, валидатор проверяет только синтаксис и структуру TOML. Файл может быть корректным TOML и при этом содержать ключ, непонятный Cargo или серверной части сборки Python. Используйте этот инструмент, чтобы исключить синтаксические ошибки, прежде чем проверять настройки конкретного инструмента.

### Каков максимальный размер входных данных и можно ли их преобразовать?

Размер входных данных может достигать 5 MiB, а глубина вложенности массивов и встроенных таблиц — 64 уровней. Чтобы преобразовать корректный TOML в JSON, YAML или другой формат, воспользуйтесь конвертером форматов данных.

Ваша реклама здесь?

[Напишите нам по электронной почте](mailto:hi@dennn.is?subject=%D0%A0%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D0%B0%20%D0%BD%D0%B0%20OneClick%20Pro)

[Реклама Набор плагинов для работы агентов с WordPress.](https://sleekwp.com/?ref=oneclickpro)
