TOML কে YAML-এ রূপান্তর করার দ্রুততম উপায় হল yq -oy '.' file.toml। ম্যানুয়াল রূপান্তরের জন্য, TOML-এর [table] হেডারগুলিকে YAML-এর ইনডেন্টেড ব্লকে ম্যাপ করুন, TOML অ্যারেগুলিকে ড্যাশ-প্রিফিক্সড তালিকায় পরিণত করুন এবং “নরওয়ে সমস্যা” এড়াতে সর্বদা অস্পষ্ট স্ট্রিংগুলি উদ্ধৃত করুন।
দ্রুত রূপান্তর: yq CLI ব্যবহার করে
TOML (টমস অবভিয়াস, মিনিমাল ল্যাঙ্গুয়েজ) ডিসেম্বর 2025-এ তার v1.1.0 সংস্করণ প্রকাশ করেছে, কিন্তু YAML CI/CD পাইপলাইন এবং Kubernetes ম্যানিফেস্টের জন্য মান হিসেবে রয়ে গেছে। yq টুলটি একটি একক কমান্ডে রূপান্তর সম্পন্ন করে।
yq ইনস্টল করুন
| প্ল্যাটফর্ম | কমান্ড |
|---|---|
| macOS/Linux | brew install yq |
| Windows | choco install yq |
| Python (pip) | pip install yq |
গতির জন্য মাইক ফারাহ-এর Go-ভিত্তিক সংস্করণটি পছন্দ করা হয়। মাইক ফারাহ-এর yq ডকুমেন্টেশনে উল্লেখ করা হয়েছে, টুলটি TOML কাঠামো ডিকোড করে এবং পরিষ্কার YAML হিসেবে পুনরায় এনকোড করে।
রূপান্তর চালান
টার্মিনালে প্রদর্শন:
yq -oy '.' your-config.toml
ফাইলে সংরক্ষণ:
yq -oy '.' your-config.toml > your-config.yaml
-oy ফ্ল্যাগটি আউটপুট ফরম্যাট YAML হিসেবে সেট করে। এটি কী-ভ্যালু জোড়া, নেস্টেড টেবিল এবং অ্যারে পরিচালনা করে।

সিনট্যাক্স অনুবাদ ম্যাপ: TOML কাঠামো থেকে YAML-এ
ডেভেলপার ড্রু ডেভোল্ট উল্লেখ করেছেন যে TOML জনপ্রিয় হলেও, YAML গভীর নেস্টিং আরও পরিষ্কারভাবে পরিচালনা করে। এখানে সঠিক ম্যাপিং দেওয়া হল:
টেবিল থেকে ইনডেন্টেড কী পর্যন্ত
TOML ব্র্যাকেট হেডার ব্যবহার করে; YAML ইনডেন্টেশন ব্যবহার করে।
| TOML | YAML |
|---|---|
[server] |
server: |
host = "127.0.0.1" |
host: 127.0.0.1 |
port = 8080 |
port: 8080 |
গুরুত্বপূর্ণ পার্থক্য: TOML-এ ইনডেন্টেশন প্রসাধনমূলক। YAML-এ ইনডেন্টেশন কাঠামোগত — একটি ভুল স্পেস পুরো কনফিগারেশন নষ্ট করে দেয়।
অ্যারে থেকে ড্যাশ-প্রিফিক্সড তালিকা পর্যন্ত
TOML: ports = [ 8000, 8001 ]
YAML:
ports:
- 8000
- 8001

Knightli.com ব্যাখ্যা করে, YAML-এর “ব্লক স্টাইল” তালিকাগুলিকে পাঠযোগ্য করে তোলে, যদি উল্লম্ব সারিবদ্ধকরণ সুসংগত থাকে।
ইনলাইন টেবিল এবং ডটেড কী
| TOML নির্মাণ | YAML সমতুল্য |
|---|---|
[a.b.c] (ডটেড হেডার) |
a: → b: → c: (নেস্টেড ইনডেন্টেশন) |
point = { x = 1, y = 2 } (ইনলাইন টেবিল) |
point: → x: 1 → y: 2 |
বাস্তব বিশ্বের ব্যবহারের ক্ষেত্র
Hugo স্ট্যাটিক সাইট কনফিগারেশন
Hugo hugo.toml, hugo.yaml বা hugo.json গ্রহণ করে। বেশিরভাগ প্রকল্প TOML (ডিফল্ট) দিয়ে শুরু করে, তারপর YAML-এ মাইগ্রেট করে যখন কনফিগারেশনকে Netlify বা GitHub Actions-এর মতো ডিপ্লয়মেন্ট প্ল্যাটফর্মের সাথে সারিবদ্ধ করতে হয়। হ্যামার ইউরোপ উল্লেখ করে যে hugo কমান্ড এই ফাইলগুলি পড়ে Markdown কীভাবে লাইভ সাইটে রূপান্তরিত হয় তা নির্ধারণ করে।
Python প্যাকেজিং: pyproject.toml থেকে CI/CD YAML পর্যন্ত
Python সম্প্রদায় PEP 518-এর মাধ্যমে pyproject.toml মানক করেছে। এই সেটিংসগুলি প্রায়ই GitHub Actions CI/CD ওয়ার্কফ্লোর জন্য YAML-এ অনুবাদ করতে হয়। AI এজেন্ট ওয়ার্কফ্লোর জন্য, CocoIndex রিপোর্ট করে যে অপ্টিমাইজড YAML কনফিগারেশন টোকেন ব্যবহার 70% পর্যন্ত কমাতে পারে।
নরওয়ে সমস্যা এবং অন্যান্য রূপান্তর ফাঁদ
NO দেশের কোড বাগ
YAML 1.1-এ, NO, OFF এবং YES-এর মতো বেয়ার স্ট্রিংগুলি স্বয়ংক্রিয়ভাবে বুলিয়ান false বা true-এ রূপান্তরিত হয়। TOML সমস্ত স্ট্রিংয়ে উদ্ধৃতি চিহ্ন আবশ্যক করে এটি এড়ায়। রূপান্তরের সময়, সর্বদা YAML-এ অস্পষ্ট মানগুলি উদ্ধৃত করুন:
| মান | YAML 1.1 ব্যাখ্যা | সমাধান |
|---|---|---|
NO |
false |
"NO" |
OFF |
false |
"OFF" |
YES |
true |
"YES" |
On |
true |
"On" |
YAML 1.2 (বর্তমান স্পেসিফিকেশন) এই কোয়ার্শনগুলির বেশিরভাগ ঠিক করে, কিন্তু অনেক পার্সার এখনও ডিফল্টরূপে 1.1 আচরণ ব্যবহার করে।

ইনডেন্টেশন ত্রুটি
YAML পার্সার অসঙ্গত ইনডেন্টেশন সহ ফাইলগুলি প্রত্যাখ্যান করে। সাধারণ ভুলগুলি:
- ট্যাব এবং স্পেস মেশানো (YAML ট্যাব নিষিদ্ধ করে)
- একটি ব্লকে 3 স্পেস এবং অন্যটিতে 2 ব্যবহার করা
- ভুলভাবে সারিবদ্ধ তালিকা আইটেম
AI-সহায়িত জেনারেশন
AgentBuilder-এর মতো টুলগুলি আপনাকে সাধারণ ভাষায় কনফিগারেশন বর্ণনা করতে এবং বৈধকৃত YAML আউটপুট করতে দেয়। এই “বর্ণনা → জেনারেট → বৈধকরণ” চক্রটি ইনডেন্টেশন ত্রুটি এবং নরওয়ে সমস্যা উভয়ই এড়াতে সাহায্য করে।
উপসংহার
স্বয়ংক্রিয় রূপান্তরের জন্য yq -oy '.' file.toml ব্যবহার করুন। ম্যানুয়াল কাজের জন্য, TOML টেবিলগুলিকে YAML ইনডেন্টেশনে ম্যাপ করুন, অ্যারেগুলিকে ড্যাশ-প্রিফিক্সড তালিকায় পরিণত করুন এবং সর্বদা এমন স্ট্রিংগুলি উদ্ধৃত করুন যেগুলিকে বুলিয়ান বলে ভুল করা যেতে পারে। যেকোনো রূপান্তরের পরে, ডিপ্লয় করার আগে YAML আউটপুট বৈধকরণ করুন — একটি ভুল সারিবদ্ধ স্পেস বা উদ্ধৃতিহীন NO আপনার পুরো পাইপলাইন নষ্ট করতে পারে।
সাধারণ জিজ্ঞাসা
YAML কি TOML-এর মতো মন্তব্য সমর্থন করে?
হ্যাঁ। উভয়ই একক-লাইন মন্তব্যের জন্য # ব্যবহার করে। YAML মন্তব্যগুলি মাল্টি-লাইন স্ট্রিং পার্সিংয়ে হস্তক্ষেপ করতে পারে, তাই সন্দেহ থাকলে সেগুলি আলাদা লাইনে রাখুন।
YAML-এ ‘নরওয়ে সমস্যা’ কী?
YAML 1.1-এ, NO (নরওয়ের দেশের কোড)-এর মতো বেয়ার স্ট্রিংগুলি স্বয়ংক্রিয়ভাবে বুলিয়ান false-এ রূপান্তরিত হয়। TOML সমস্ত স্ট্রিং মানে উদ্ধৃতি চিহ্ন আবশ্যক করে এটি এড়ায়। TOML কে YAML-এ রূপান্তর করার সময়, যেকোনো সম্ভাব্য অস্পষ্ট স্ট্রিং উদ্ধৃতি চিহ্নে মোড়ান।
কোন ফরম্যাট গভীর নেস্টিং ভালোভাবে পরিচালনা করে?
YAML। TOML-এ প্রতিটি স্তরের জন্য [table.subtable.subsubtable]-এর মতো দীর্ঘ হেডার পুনরাবৃত্তি করতে হয়, যা শব্দবহুল হয়ে যায়। YAML একই শ্রেণিবিন্যাস ইনডেন্টেশন দিয়ে উপস্থাপন করে — গভীরতায় আরও সংক্ষিপ্ত এবং পাঠযোগ্য।

মন্তব্য করুন