ToolDeck

TOML ফর্ম্যাটার

TOML কনফিগারেশন ফাইল ফর্ম্যাট ও যাচাই করুন

একটি উদাহরণ চেষ্টা করুন

TOML ইনপুট

ফর্ম্যাটেড TOML

স্থানীয়ভাবে চলে · গোপন তথ্য পেস্ট করা নিরাপদ
ফর্ম্যাটেড TOML এখানে দেখা যাবে…
এটাও ব্যবহার করুন:TOML থেকে JSON

সর্বশেষ আপডেট: এপ্রিল ২০২৬

TOML ফর্ম্যাটিং কী?

TOML (Tom's Obvious Minimal Language) হলো Tom Preston-Werner-এর ২০১৩ সালে তৈরি একটি কনফিগারেশন ফাইল ফর্ম্যাট। এটি সরাসরি একটি হ্যাশ টেবিলে ম্যাপ হয় এবং সকল মানের জন্য সুস্পষ্ট টাইপিং ব্যবহার করে। একটি TOML ফর্ম্যাটার কাঁচা বা অসামঞ্জস্যপূর্ণভাবে স্টাইল করা TOML নিয়ে সামঞ্জস্যপূর্ণ স্পেসিং, সঠিক ইন্ডেন্টেশন এবং মানসম্মত কী অর্ডারিং সহ পুনরায় সিরিয়ালাইজ করে। ফলাফল হলো এমন একটি ফাইল যা আপনার পুরো প্রজেক্টে একই নিয়ম অনুসরণ করে, যা diff-এ কনফিগ পরিবর্তনগুলো পর্যালোচনা করা সহজ করে তোলে।

TOML v1.0.0 স্পেসিফিকেশন, যা জানুয়ারি ২০২১ সালে চূড়ান্ত করা হয়েছে, ব্যাকরণটি এতটাই কঠোরভাবে সংজ্ঞায়িত করে যে যেকোনো সামঞ্জস্যপূর্ণ পার্সার একই ইনপুট থেকে একটি অভিন্ন ডেটা কাঠামো তৈরি করে। ফর্ম্যাটিং একটি TOML ফাইলের তথ্য পরিবর্তন করে না। এটি শুধুমাত্র হোয়াইটস্পেস, কী গ্রুপিং এবং কোটিং স্টাইল সামঞ্জস্য করে। এর অর্থ আপনি আপনার অ্যাপ্লিকেশনের আচরণ ভাঙার চিন্তা না করেই TOML ফাইল স্বাধীনভাবে ফর্ম্যাট করতে পারেন।

JSON-এর বিপরীতে, TOML মন্তব্য, নেটিভ ডেট-টাইম টাইপ এবং একাধিক স্ট্রিং ফর্ম্যাট (বেসিক, লিটারেল এবং মাল্টি-লাইন) সমর্থন করে। একটি ভালো ফর্ম্যাটার মন্তব্য সংরক্ষণ করে এবং ইনলাইন টেবিল ও স্ট্যান্ডার্ড টেবিল হেডারের মধ্যে পার্থক্য বজায় রাখে। এটি অ্যারে-অফ-টেবিলও সঠিকভাবে পরিচালনা করে, সেকশন গ্রুপিং অক্ষুণ্ণ রাখে যাতে ফাইলটি মানুষ এবং পার্সার উভয়ের জন্যই পাঠযোগ্য থাকে।

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 ফর্ম্যাটার কেন ব্যবহার করবেন?

কনফিগারেশন ফাইলে সময়ের সাথে সাথে স্টাইলের অসামঞ্জস্য জমে যায় কারণ বিভিন্ন দলের সদস্যরা সেগুলো সম্পাদনা করেন। ট্যাব ও স্পেস মিশে যায়, কিছু কী অপ্রয়োজনীয়ভাবে কোট করা হয়, এবং টেবিল সেকশন তাদের ভিজ্যুয়াল গ্রুপিং হারিয়ে ফেলে। একটি TOML ফর্ম্যাটার এই সবকিছু একবারেই স্বাভাবিক করে।

তাৎক্ষণিক ফর্ম্যাটিং
ফর্ম্যাট না করা TOML পেস্ট করুন এবং সাথে সাথে পরিচ্ছন্ন, সামঞ্জস্যপূর্ণ আউটপুট পান। কোনো CLI ইনস্টল নেই, কোনো প্রজেক্ট সেটআপ নেই, কোনো বিল্ড স্টেপের জন্য অপেক্ষা নেই।
🔒
গোপনীয়তা-সচেতন প্রক্রিয়াকরণ
সমস্ত পার্সিং এবং ফর্ম্যাটিং আপনার ব্রাউজারে চলে। আপনার কনফিগারেশন ডেটা, যেকোনো ক্রেডেনশিয়াল বা অভ্যন্তরীণ হোস্টনাম সহ, কখনো আপনার মেশিন ছাড়ে না।
যাচাইকরণ অন্তর্ভুক্ত
ফর্ম্যাটার পুনরায় সিরিয়ালাইজ করার আগে আপনার TOML পার্স করে। ইনপুটে সিনট্যাক্স ত্রুটি থাকলে, আপনি সমস্যাযুক্ত লাইন সহ একটি স্পষ্ট ত্রুটি বার্তা পাবেন, তাই ফর্ম্যাটিং যাচাইকরণ হিসেবেও কাজ করে।
📋
কোনো অ্যাকাউন্ট প্রয়োজন নেই
পেজ খুলুন এবং ফর্ম্যাটিং শুরু করুন। কোনো সাইন-আপ নেই, কোনো রেট লিমিট নেই এবং কোনো ব্যবহার ট্র্যাকিং নেই। টুলটি প্রতিটি ভিজিটে একইভাবে কাজ করে।

TOML ফর্ম্যাটারের ব্যবহারের ক্ষেত্র

ফ্রন্টএন্ড ডেভেলপমেন্ট
Cloudflare Workers প্রজেক্টের জন্য Wrangler.toml ফাইল বা Deno-ভিত্তিক ফ্রন্টএন্ডের জন্য deno.toml কনফিগারেশন ফর্ম্যাট করুন। পুল রিকোয়েস্টে ডিপ্লয়মেন্ট কনফিগ পর্যালোচনা করার সময় পরিচ্ছন্ন ফর্ম্যাটিং সহায়তা করে।
ব্যাকএন্ড ইঞ্জিনিয়ারিং
একাধিক Rust মাইক্রোসার্ভিস জুড়ে Cargo.toml ফাইল স্ট্যান্ডার্ড করুন। সামঞ্জস্যপূর্ণ ফর্ম্যাটিং বিভিন্ন রিপোজিটরিতে নির্ভরতার সংস্করণ ও ফিচার ফ্ল্যাগ স্ক্যান করা সহজ করে।
DevOps এবং CI/CD
কমিট করার আগে .goreleaser.toml, netlify.toml বা Starship প্রম্পট কনফিগের মতো কনফিগারেশন ফাইল ফর্ম্যাট করুন। স্টাইল সামঞ্জস্য নিশ্চিত করতে CI পাইপলাইনে একটি ফর্ম্যাটিং চেক যোগ করুন।
QA এবং পরীক্ষা
টেস্ট ফিকসচার দ্রুত ফর্ম্যাট করুন যাতে সেগুলো পাঠযোগ্য ও diff-যোগ্য হয়। যখন কনফিগ পার্থক্যের কারণে কোনো পরীক্ষা ব্যর্থ হয়, ফর্ম্যাটেড ফাইলগুলো প্রকৃত বনাম প্রত্যাশিত তুলনা স্পষ্ট করে।
ডেটা ইঞ্জিনিয়ারিং
Telegraf বা InfluxDB কনফিগ ফর্ম্যাট করুন যা ডেটা সংগ্রহ পাইপলাইন নির্ধারণ করে। এই ফাইলগুলো প্রায়শই শত শত লাইনের হয়ে যায়, এবং সামঞ্জস্যপূর্ণ ফর্ম্যাটিং সেগুলো রক্ষণাবেক্ষণযোগ্য রাখে।
TOML সিনট্যাক্স শেখা
ডকুমেন্টেশন বা টিউটোরিয়াল থেকে উদাহরণ পেস্ট করুন এবং দেখুন কীভাবে একটি ফর্ম্যাটার সেগুলো স্বাভাবিক করে। এটি কোন ব্র্যাকেট স্টাইল, কোটিং নিয়ম এবং টেবিল গ্রুপিং স্ট্যান্ডার্ড তা দ্রুত শেখার উপায়।

TOML সিনট্যাক্স রেফারেন্স

TOML-এর কাঠামোগত উপাদানগুলোর একটি ছোট সংগ্রহ রয়েছে। নিচের টেবিলটি TOML v1.0.0 স্পেসিফিকেশনে সংজ্ঞায়িত প্রতিটি কাঠামোগত উপাদান তালিকাভুক্ত করে। একটি ফর্ম্যাটার এই সবগুলোতে সামঞ্জস্যপূর্ণ স্পেসিং ও গ্রুপিং প্রয়োগ করে।

সিনট্যাক্সনামনোট
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)শিথিল (একাধিক বৈধ পার্স)
ডেট/টাইম সমর্থন৪টি নেটিভ টাইপনেই (স্ট্রিং ব্যবহার করুন)অন্তর্নিহিত (ভঙ্গুর)
ট্রেইলিং কমাঅনুমোদিত নয়অনুমোদিত নয়প্রযোজ্য নয় (কোনো কমা নেই)

কোড উদাহরণ

নিচের উদাহরণগুলো বিভিন্ন ভাষা ও টুলে প্রোগ্রামগতভাবে 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 ফর্ম্যাটার কী করে?
একটি TOML ফর্ম্যাটার ফাইলটিকে একটি ডেটা কাঠামোয় পার্স করে, তারপর সামঞ্জস্যপূর্ণ হোয়াইটস্পেস, কী অর্ডারিং এবং কোটিং সহ পুনরায় সিরিয়ালাইজ করে। তথ্য একই থাকে। শুধুমাত্র ভিজ্যুয়াল ফর্ম্যাট পরিবর্তিত হয়: সমান চিহ্নের চারপাশে স্পেসিং, টেবিল সেকশনের মধ্যে ফাঁকা লাইন এবং নেস্টেড মানের ইন্ডেন্টেশন।
প্রোডাকশন কনফিগ ফাইলের জন্য TOML ফর্ম্যাটিং কি নিরাপদ?
হ্যাঁ। ফর্ম্যাটিং শুধুমাত্র হোয়াইটস্পেস ও কসমেটিক জিনিসগুলো পরিবর্তন করে। ফর্ম্যাটিংয়ের আগে ও পরে পার্স করা ডেটা কাঠামো অভিন্ন। ফর্ম্যাটার অবৈধ ইনপুট পেলে ভাঙা আউটপুট তৈরির পরিবর্তে ত্রুটি জানায়। আপনি উভয় সংস্করণ পার্স করে এবং ফলাফল অবজেক্ট তুলনা করে এটি যাচাই করতে পারেন।
TOML JSON থেকে কীভাবে আলাদা?
TOML মন্তব্য, নেটিভ ডেট-টাইম টাইপ, মাল্টি-লাইন স্ট্রিং এবং নেস্টেড ডেটা সংগঠিত করার জন্য টেবিল হেডার সমর্থন করে। JSON-এ এর কোনোটিই নেই। এই ফর্ম্যাটটি কনফিগারেশন ফাইলের জন্য ডিজাইন করা হয়েছে যা মানুষ পড়ে ও সম্পাদনা করে। JSON প্রোগ্রামগুলোর মধ্যে ডেটা আদান-প্রদানের জন্য ডিজাইন করা হয়েছে। JSON-এ মন্তব্য ব্যবহার করা যায় না, যা ইনলাইনে কনফিগ সিদ্ধান্ত নথিভুক্ত করা কঠিন করে তোলে।
আমি কি কমান্ড লাইন থেকে TOML ফর্ম্যাট করতে পারি?
হ্যাঁ। Taplo হলো সবচেয়ে বেশি ব্যবহৃত TOML ফর্ম্যাটার CLI। cargo install taplo-cli বা npm install -g @taplo/cli দিয়ে এটি ইনস্টল করুন, তারপর আপনার প্রজেক্টের সমস্ত .toml ফাইল ফর্ম্যাট করতে taplo fmt চালান। এটি কাস্টম নিয়মের জন্য taplo.toml বা .taplo.toml ফাইলের মাধ্যমে কনফিগারেশন সমর্থন করে।
ফর্ম্যাটিং কি TOML ফাইলের মন্তব্য সংরক্ষণ করে?
এই ব্রাউজার-ভিত্তিক ফর্ম্যাটার ইনপুটকে একটি ডেটা কাঠামোয় পার্স করে এবং পুনরায় সিরিয়ালাইজ করে, যা মন্তব্য বাদ দেয়। আপনার মন্তব্য সংরক্ষণ করার প্রয়োজন হলে, Taplo (CLI) বা toml-edit (Rust লাইব্রেরি)-এর মতো CST-সচেতন টুল ব্যবহার করুন, যা পার্স করা ডেটার পরিবর্তে কংক্রিট সিনট্যাক্স ট্রিতে কাজ করে।
TOML ফর্ম্যাটিং এবং TOML যাচাইকরণের মধ্যে পার্থক্য কী?
যাচাইকরণ পরীক্ষা করে ফাইলটি স্পেসিফিকেশন মেনে চলছে কিনা এবং না মানলে ত্রুটি জানায়। ফর্ম্যাটিং আরো একধাপ এগিয়ে যায়: এটি ইনপুট যাচাই করে, তারপর স্বাভাবিক স্টাইল দিয়ে পুনরায় লেখে। প্রতিটি ফর্ম্যাটিং অপারেশনে যাচাইকরণ প্রথম পদক্ষেপ হিসেবে অন্তর্ভুক্ত থাকে, তাই সফলভাবে ফর্ম্যাট হওয়া ফাইল বৈধ হওয়ার নিশ্চয়তা দেওয়া হয়।
কোন প্রজেক্টগুলো তাদের কনফিগ ফর্ম্যাট হিসেবে TOML ব্যবহার করে?
Rust-এর Cargo (Cargo.toml), Python-এর প্যাকেজিং ইকোসিস্টেম (pyproject.toml), Hugo স্ট্যাটিক সাইট, Deno (deno.toml), Cloudflare Workers (wrangler.toml), InfluxDB, Telegraf এবং Starship প্রম্পট সবই TOML ব্যবহার করে। ২০১৫ সালে Rust প্যাকেজ ম্যানিফেস্টের মানক হিসেবে এটি গ্রহণ করার পর ফর্ম্যাটটি জনপ্রিয়তা অর্জন করে।