ToolDeck

TOML Formatter

Форматуйте та перевіряйте TOML-конфігураційні файли

Спробувати приклад

TOML-вхід

Відформатований TOML

Працює локально · Безпечно вставляти секрети
Відформатований TOML з'явиться тут…
Також спробуйте:TOML to JSON

Останнє оновлення: квітень 2026 р.

Що таке форматування TOML?

TOML (Tom's Obvious Minimal Language) — це формат конфігураційних файлів, створений Томом Престоном-Вернером у 2013 році. Він безпосередньо відображається у хеш-таблицю та використовує явну типізацію для всіх значень. TOML formatter бере сирий або непослідовно оформлений TOML і повторно серіалізує його з однорідними пробілами, правильними відступами та канонічним упорядкуванням ключів. Результатом є файл, що дотримується єдиних правил у всьому проекті, що спрощує перегляд змін конфігурації у diff-ах.

Специфікація TOML v1.0.0, завершена у січні 2021 року, визначає граматику достатньо суворо, щоб будь-який сумісний парсер давав ідентичну структуру даних з одного вхідного файлу. Форматування не змінює семантичний вміст TOML-файлу. Воно коригує лише пробіли, групування ключів і стиль лапок. Це означає, що ви можете форматувати TOML-файли без ризику порушити поведінку вашого застосунку.

На відміну від JSON, TOML підтримує коментарі, нативні типи дати й часу та кілька форм рядків (базовий, літеральний і багаторядковий). Хороший formatter зберігає коментарі та розрізняє вбудовані таблиці й стандартні заголовки таблиць. Він також правильно обробляє масиви таблиць, зберігаючи групування секцій, щоб файл залишався зручним для читання людиною і для парсерів.

Before · toml
After · toml
title="My App"
version="1.0.0"
debug=false
[database]
host="localhost"
port=5432
name="mydb"
[database.pool]
max_connections=25
timeout=30
[[servers]]
name="web"
host="web.example.com"
[[servers]]
name="api"
host="api.example.com"
title = "My App"
version = "1.0.0"
debug = false

[database]
host = "localhost"
port = 5432
name = "mydb"

[database.pool]
max_connections = 25
timeout = 30

[[servers]]
name = "web"
host = "web.example.com"

[[servers]]
name = "api"
host = "api.example.com"

Навіщо використовувати TOML Formatter?

Конфігураційні файли накопичують розбіжності в оформленні, коли різні члени команди редагують їх із часом. Табуляції змішуються з пробілами, деякі ключі беруться в лапки без потреби, а табличні секції втрачають свою візуальну структуру. TOML formatter нормалізує все це за один прохід.

Миттєве форматування
Вставте неформатований TOML і отримайте чистий, послідовно оформлений результат одразу. Без встановлення CLI, без налаштування проекту, без очікування кроку збірки.
🔒
Обробка з пріоритетом конфіденційності
Весь парсинг і форматування виконується у вашому браузері. Дані конфігурації, включно з будь-якими обліковими даними або внутрішніми іменами хостів, ніколи не покидають ваш пристрій.
Перевірка включена
Formatter парсить ваш TOML перед повторною серіалізацією. Якщо вхідні дані містять синтаксичні помилки, ви отримаєте чітке повідомлення про помилку з проблемним рядком, тобто форматування одночасно виконує роль валідатора.
📋
Без облікового запису
Відкрийте сторінку і починайте форматувати. Без реєстрації, без обмежень запитів і без відстеження використання. Інструмент працює однаково при кожному відвіданні.

Випадки використання TOML Formatter

Frontend-розробка
Форматуйте файли Wrangler.toml для проектів Cloudflare Workers або deno.toml для фронтендів на базі Deno. Чисте форматування полегшує перегляд конфігурацій розгортання у pull request-ах.
Backend-розробка
Стандартизуйте файли Cargo.toml у кількох Rust-мікросервісах. Послідовне форматування дозволяє легко переглядати версії залежностей і прапорці feature flags у різних репозиторіях.
DevOps та CI/CD
Форматуйте конфігураційні файли на зразок .goreleaser.toml, netlify.toml або конфігурації Starship перед комітом. Додайте перевірку форматування у CI-пайплайни для забезпечення послідовного стилю.
QA та тестування
Швидко форматуйте тестові фікстури, щоб вони були читабельними і зручними для порівняння у diff-ах. Коли тест не проходить через відмінності у конфігурації, відформатовані файли роблять порівняння фактичного та очікуваного результату очевидним.
Інженерія даних
Форматуйте конфігурації Telegraf або InfluxDB, що визначають пайплайни збору даних. Такі файли часто розростаються до сотень рядків, і послідовне форматування забезпечує їх підтримуваність.
Вивчення синтаксису TOML
Вставляйте приклади з документації або підручників і дивіться, як formatter їх нормалізує. Це швидкий спосіб дізнатися, які стилі дужок, правила лапок і групування таблиць є канонічними.

Довідник синтаксису TOML

TOML має невеликий набір конструкцій. У таблиці нижче перелічено всі структурні елементи, визначені у специфікації TOML v1.0.0. Formatter застосовує послідовне розміщення пробілів і групування до всіх із них.

СинтаксисНазваПримітки
key = "value"Basic key-value pairKeys are bare or quoted; values are typed
[table]Standard tableCreates a named section (hash table)
[a.b.c]Dotted tableShorthand for nested tables
[[array]]Array of tablesEach [[name]] block appends to an array
key = """...\n"""Multi-line basic stringAllows newlines, escapes processed
key = '''...\n'''Multi-line literal stringAllows newlines, no escape processing
# commentCommentExtends to end of line; not in JSON output
{inline = true}Inline tableSingle-line table, no newlines allowed

TOML проти JSON проти YAML

TOML, JSON і YAML вирішують схожі задачі, але з різними компромісами.

ОсобливістьTOMLJSONYAML
Коментарі# рядкові коментаріНе підтримується# рядкові коментарі
Типізовані значенняString, int, float, bool, datetimeString, number, bool, nullАвтовизначення (ненадійно)
ВкладеністьЗаголовки [table]Фігурні дужкиНа основі відступів
Суворість специфікаціїСуворо (один результат парсингу)Суворо (RFC 8259)Нестрого (кілька валідних парсингів)
Підтримка дати/часу4 нативних типиВідсутня (використовуйте рядки)Неявна (ненадійна)
Завершальні комиНе допускаютьсяНе допускаютьсяН/Д (ком немає)

Приклади коду

Наведені нижче приклади форматують TOML програмно у різних мовах та інструментах. Кожен зчитує файл, парсить його і записує відформатовану версію.

JavaScript (Node.js)
import { parse, stringify } from '@iarna/toml'
import fs from 'fs'

const raw = fs.readFileSync('config.toml', 'utf-8')
const doc = parse(raw)
const formatted = stringify(doc)
// stringify() outputs canonical TOML with consistent spacing
fs.writeFileSync('config.toml', formatted)

// Quick one-liner with npx:
// npx taplo fmt config.toml
Python
import tomllib   # Python 3.11+ (read-only)
import tomli_w   # pip install tomli-w (write)

# Parse and re-serialize to format
with open("config.toml", "rb") as f:
    data = tomllib.load(f)

formatted = tomli_w.dumps(data)
# tomli_w produces sorted keys, consistent quoting, and
# proper whitespace around = signs
print(formatted)

# CLI alternative: taplo fmt config.toml
Go
package main

import (
    "fmt"
    "os"
    "github.com/BurntSushi/toml"
    "bytes"
)

func main() {
    var data map[string]interface{}
    _, err := toml.DecodeFile("config.toml", &data)
    if err != nil {
        fmt.Fprintln(os.Stderr, err) // parse error with line number
        os.Exit(1)
    }
    var buf bytes.Buffer
    enc := toml.NewEncoder(&buf)
    enc.Indent = "  "
    enc.Encode(data) // re-serialized with consistent formatting
    fmt.Print(buf.String())
}
CLI (taplo)
# Install taplo — the standard TOML toolkit
cargo install taplo-cli
# or: npm install -g @taplo/cli

# Format a single file in place
taplo fmt config.toml

# Format all .toml files in a project
taplo fmt

# Check formatting without modifying (CI-friendly)
taplo fmt --check

# Validate TOML syntax without formatting
taplo lint config.toml

Часті запитання

Що робить TOML formatter?
TOML formatter парсить файл у структуру даних, а потім повторно серіалізує його з послідовними пробілами, упорядкуванням ключів і стилем лапок. Семантичний вміст залишається незмінним. Змінюється лише візуальне представлення: пробіли навколо знаків рівності, порожні рядки між табличними секціями та відступи для вкладених значень.
Чи безпечне форматування TOML для продакшен конфігураційних файлів?
Так. Форматування змінює лише пробіли та косметичні деталі. Структура даних до і після форматування ідентична. Якщо formatter зустрічає недійсний вхідний файл, він повідомляє про помилку замість того, щоб видавати некоректний результат. Це можна перевірити, порівнявши результати парсингу обох версій.
Чим TOML відрізняється від JSON?
TOML підтримує коментарі, нативні типи дати й часу, багаторядкові рядки та заголовки таблиць для організації вкладених даних. У JSON нічого цього немає. Формат розроблений для конфігураційних файлів, які люди читають і редагують. JSON призначений для обміну даними між програмами. В JSON не можна використовувати коментарі, що ускладнює документування рішень щодо конфігурації безпосередньо у файлі.
Чи можна форматувати TOML з командного рядка?
Так. Taplo — найпоширеніший CLI-інструмент для форматування TOML. Встановіть його командою cargo install taplo-cli або npm install -g @taplo/cli, а потім виконайте taplo fmt, щоб відформатувати всі файли .toml у вашому проекті. Він підтримує конфігурацію через файл taplo.toml або .taplo.toml для налаштування правил.
Чи зберігає форматування коментарі у TOML-файлах?
Цей браузерний formatter парсить вхідні дані у структуру даних і повторно серіалізує їх, що призводить до видалення коментарів. Якщо вам потрібно зберегти коментарі, використовуйте інструменти з підтримкою CST, як-от Taplo (CLI) або toml-edit (бібліотека Rust), які працюють з конкретним синтаксичним деревом, а не з розібраними даними.
У чому різниця між форматуванням і валідацією TOML?
Валідація перевіряє відповідність файлу специфікації та повідомляє про помилки в разі невідповідності. Форматування йде далі: воно перевіряє вхідні дані, а потім переписує їх у нормалізованому стилі. Кожна операція форматування включає валідацію як перший крок, тому файл, що успішно відформатований, гарантовано є валідним.
Які проекти використовують TOML як формат конфігурації?
TOML використовують: Cargo від Rust (Cargo.toml), екосистема пакування Python (pyproject.toml), статичні сайти Hugo, Deno (deno.toml), Cloudflare Workers (wrangler.toml), InfluxDB, Telegraf і Starship prompt. Формат набув популярності після того, як Rust у 2015 році прийняв його як стандарт для маніфестів пакетів.