# Валідатор TOML

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

## Поширені запитання

### Що перевіряє валідатор TOML?

Він розбирає ключі, рядки, числа, логічні значення, дати й час, масиви, вбудовані таблиці, таблиці та масиви таблиць точно так, як це визначено специфікацією TOML. Будь-яке відхилення, наприклад відсутнє значення, рядок без лапок або неправильна escape-послідовність, буде позначено як помилку. Для дійсних файлів надається короткий опис їхньої структури.

### Яку інформацію містить повідомлення про помилку?

Кожне повідомлення про помилку вказує рядок і стовпець, де розбір зупинився, а також подробиці від парсера, наприклад про недійсну дату або спробу повторно визначити вже задану таблицю чи значення. Нумерація рядків і стовпців починається з 1. Відображається лише перша помилка, оскільки подальші часто є її наслідками.

### Чому ключ або таблицю позначено як повторно визначені?

TOML не дозволяє двічі використовувати той самий ключ у таблиці, а заголовок таблиці, наприклад [server], може з’являтися лише один раз. Визначення ключа з крапкою, наприклад server.port, після таблиці [server], у якій уже задано port, також вважається повторним визначенням. Щоб виправити це, об’єднайте записи в одному місці.

### Як рахуються таблиці та ключі?

Tables — це кількість усіх таблиць нижче кореня, зокрема вбудованих таблиць і кожного елемента масиву таблиць. Keys — це кількість ключів зі значеннями, відмінними від таблиці або масиву таблиць; тому список рядків рахується як один ключ. Top-level keys — це список назв на кореневому рівні, не більше ніж 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)
