TOML থেকে YAML: সিনট্যাক্স ম্যাপ এবং ফাঁদ সহ দ্রুত রূপান্তর গাইড

A sleek, modern visual showing the transformation from TOML to YAML

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

TOML বনাম YAML-এর পাশাপাশি কাঠামোগত তুলনা

Knightli.com ব্যাখ্যা করে, YAML-এর “ব্লক স্টাইল” তালিকাগুলিকে পাঠযোগ্য করে তোলে, যদি উল্লম্ব সারিবদ্ধকরণ সুসংগত থাকে।

ইনলাইন টেবিল এবং ডটেড কী

TOML নির্মাণ YAML সমতুল্য
[a.b.c] (ডটেড হেডার) a:b:c: (নেস্টেড ইনডেন্টেশন)
point = { x = 1, y = 2 } (ইনলাইন টেবিল) point:x: 1y: 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 একই শ্রেণিবিন্যাস ইনডেন্টেশন দিয়ে উপস্থাপন করে — গভীরতায় আরও সংক্ষিপ্ত এবং পাঠযোগ্য।

Comments

মন্তব্য করুন

আপনার ই-মেইল এ্যাড্রেস প্রকাশিত হবে না। * চিহ্নিত বিষয়গুলো আবশ্যক।