ToolDeck

TOML Formatter

Format dan validasi file konfigurasi TOML

Coba contoh

Input TOML

TOML Terformat

Berjalan lokal · Aman untuk menempel rahasia
TOML yang terformat akan muncul di sini…
Coba juga:TOML to JSON

Terakhir diperbarui: April 2026

Apa itu TOML Formatting?

TOML (Tom's Obvious Minimal Language) adalah format file konfigurasi yang dibuat oleh Tom Preston-Werner pada tahun 2013. Format ini dipetakan langsung ke hash table dan menggunakan pengetikan eksplisit untuk semua nilai. Sebuah TOML formatter mengambil TOML mentah atau bergaya tidak konsisten, lalu men-serialize ulang dengan spasi seragam, indentasi yang tepat, dan urutan kunci yang kanonik. Hasilnya adalah file yang mengikuti konvensi yang sama di seluruh proyek Anda, sehingga perubahan konfigurasi lebih mudah ditinjau dalam diff.

Spesifikasi TOML v1.0.0, yang diselesaikan pada Januari 2021, mendefinisikan tata bahasa dengan cukup ketat sehingga setiap parser yang patuh menghasilkan struktur data yang identik dari input yang sama. Formatting tidak mengubah konten semantik file TOML. Hanya menyesuaikan whitespace, pengelompokan kunci, dan gaya pengutipan. Ini berarti Anda dapat memformat file TOML dengan bebas tanpa khawatir merusak perilaku aplikasi.

Tidak seperti JSON, TOML mendukung komentar, tipe date-time native, dan beberapa bentuk string (dasar, literal, dan multi-baris). Formatter yang baik mempertahankan komentar dan menghormati perbedaan antara inline table dan header table standar. Formatter juga menangani array of tables dengan benar, menjaga pengelompokan bagian tetap utuh sehingga file tetap mudah dibaca oleh manusia maupun parser yang menggunakannya.

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"

Mengapa Menggunakan TOML Formatter?

File konfigurasi mengalami penyimpangan gaya seiring berbagai anggota tim mengeditnya dari waktu ke waktu. Tab bercampur dengan spasi, beberapa kunci dikutip secara tidak perlu, dan bagian table kehilangan pengelompokan visualnya. TOML formatter menormalkan semua ini dalam satu proses.

Pemformatan Instan
Tempelkan TOML yang belum terformat dan dapatkan keluaran yang bersih dan konsisten secara langsung. Tidak perlu memasang CLI, menyiapkan proyek, atau menunggu langkah build.
🔒
Pemrosesan yang Mengutamakan Privasi
Semua proses parse dan formatting berjalan di browser Anda. Data konfigurasi Anda, termasuk kredensial atau nama host internal mana pun, tidak pernah meninggalkan perangkat Anda.
Validasi Sudah Termasuk
Formatter mem-parse TOML Anda sebelum men-serialize ulang. Jika input memiliki kesalahan sintaks, Anda mendapatkan pesan kesalahan yang jelas dengan baris yang bermasalah, sehingga formatting sekaligus berfungsi sebagai validasi.
📋
Tidak Perlu Akun
Buka halaman dan mulai memformat. Tidak ada pendaftaran, tidak ada batas permintaan, dan tidak ada pelacakan penggunaan. Alat ini bekerja identik di setiap kunjungan.

Kasus Penggunaan TOML Formatter

Pengembangan Frontend
Format file Wrangler.toml untuk proyek Cloudflare Workers atau konfigurasi deno.toml untuk frontend berbasis Deno. Formatting yang rapi membantu saat meninjau konfigurasi deployment dalam pull request.
Rekayasa Backend
Standarisasi file Cargo.toml di beberapa microservice Rust. Formatting yang konsisten memudahkan pemindaian versi dependensi dan feature flag di berbagai repositori.
DevOps & Pipeline CI/CD
Format file konfigurasi seperti .goreleaser.toml, netlify.toml, atau konfigurasi Starship prompt sebelum melakukan commit. Tambahkan pemeriksaan formatting ke pipeline CI untuk menegakkan konsistensi gaya.
QA & Pengujian
Format test fixture dengan cepat agar mudah dibaca dan di-diff. Saat pengujian gagal karena perbedaan konfigurasi, file yang terformat membuat perbandingan aktual vs. yang diharapkan menjadi jelas.
Rekayasa Data
Format konfigurasi Telegraf atau InfluxDB yang mendefinisikan pipeline pengumpulan data. File-file ini sering berkembang hingga ratusan baris, dan formatting yang konsisten menjaganya tetap mudah dipelihara.
Belajar Sintaks TOML
Tempelkan contoh dari dokumentasi atau tutorial dan lihat bagaimana formatter menormalkannya. Ini adalah cara cepat untuk mempelajari gaya tanda kurung, aturan pengutipan, dan pengelompokan table mana yang kanonik.

Referensi Sintaks TOML

TOML memiliki sekumpulan konstruksi yang kecil. Tabel di bawah ini mencantumkan setiap elemen struktural yang didefinisikan dalam spesifikasi TOML v1.0.0. Sebuah formatter menerapkan spasi dan pengelompokan yang konsisten untuk semua elemen ini.

SintaksNamaCatatan
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 vs JSON vs YAML

TOML, JSON, dan YAML memecahkan masalah yang tumpang tindih namun dengan pertukaran yang berbeda.

FiturTOMLJSONYAML
Komentar# komentar barisTidak didukung# komentar baris
Nilai bertipeString, int, float, bool, datetimeString, number, bool, nullInferensi (rawan kesalahan)
NestingHeader [table]Kurung kurawalBerbasis indentasi
Keketatan spesifikasiKetat (satu hasil parse)Ketat (RFC 8259)Longgar (beberapa parse valid)
Dukungan date/time4 tipe nativeTidak ada (gunakan string)Implisit (rapuh)
Trailing commaTidak diizinkanTidak diizinkanT/A (tidak ada koma)

Contoh Kode

Contoh-contoh di bawah ini memformat TOML secara terprogram dalam berbagai bahasa dan alat. Masing-masing membaca file, mem-parse-nya, lalu menulis versi yang terformat.

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

Pertanyaan yang Sering Diajukan

Apa yang dilakukan TOML formatter?
Sebuah TOML formatter mem-parse file ke dalam struktur data, lalu men-serialize ulang dengan whitespace yang konsisten, urutan kunci, dan pengutipan. Konten semantik tetap sama. Hanya tampilan visual yang berubah: spasi di sekitar tanda sama dengan, baris kosong antar bagian table, dan indentasi nilai bersarang.
Apakah TOML formatting aman untuk file konfigurasi produksi?
Ya. Formatting hanya mengubah whitespace dan detail kosmetik. Struktur data yang di-parse sebelum dan sesudah formatting adalah identik. Jika formatter menemukan input yang tidak valid, ia melaporkan kesalahan alih-alih menghasilkan keluaran yang rusak. Anda dapat memverifikasi ini dengan mem-parse kedua versi dan membandingkan objek yang dihasilkan.
Apa perbedaan TOML dengan JSON?
TOML mendukung komentar, tipe date-time native, string multi-baris, dan header table untuk mengorganisasi data bersarang. JSON tidak memiliki semua ini. Format ini dirancang untuk file konfigurasi yang dibaca dan diedit manusia. JSON dirancang untuk pertukaran data antar program. Anda tidak dapat menggunakan komentar dalam JSON, sehingga lebih sulit untuk mendokumentasikan keputusan konfigurasi secara inline.
Bisakah saya memformat TOML dari command line?
Ya. Taplo adalah TOML formatter CLI yang paling banyak digunakan. Pasang dengan cargo install taplo-cli atau npm install -g @taplo/cli, lalu jalankan taplo fmt untuk memformat semua file .toml di proyek Anda. Taplo mendukung konfigurasi melalui file taplo.toml atau .taplo.toml untuk aturan kustom.
Apakah formatting mempertahankan komentar dalam file TOML?
TOML formatter berbasis browser ini mem-parse input ke struktur data lalu men-serialize ulang, yang menghapus komentar. Jika Anda perlu mempertahankan komentar, gunakan alat yang sadar CST seperti Taplo (CLI) atau toml-edit (library Rust), yang beroperasi pada concrete syntax tree alih-alih data yang sudah di-parse.
Apa perbedaan antara TOML formatting dan TOML validation?
Validasi memeriksa apakah file sesuai dengan spesifikasi dan melaporkan kesalahan jika tidak. Formatting melangkah lebih jauh: memvalidasi input, lalu menulis ulang dengan gaya yang dinormalisasi. Setiap operasi formatting menyertakan validasi sebagai langkah pertamanya, sehingga file yang berhasil diformat dijamin valid.
Proyek mana yang menggunakan TOML sebagai format konfigurasi?
Cargo milik Rust (Cargo.toml), ekosistem packaging Python (pyproject.toml), Hugo static sites, Deno (deno.toml), Cloudflare Workers (wrangler.toml), InfluxDB, Telegraf, dan Starship prompt semuanya menggunakan TOML. Format ini semakin populer setelah Rust mengadopsinya sebagai standar untuk package manifest pada tahun 2015.