YAML ফরম্যাটার ও ভ্যালিডেটর
YAML ভ্যালিডেট, beautify বা minify করতে পেস্ট করুন, অথবা
YAML ↔ JSON রূপান্তর করুন। অবৈধ ইনপুটে সঠিক পার্সার এরর ও লাইন দেখা যায়; মাল্টি-ডকুমেন্ট
ফাইল (---) সমর্থিত। সবকিছু আপনার ব্রাউজারে চলে — কিছুই আপলোড হয় না।
YAML ফরম্যাটার কীভাবে কাজ করে
টুলটি আপনার টেক্সটকে ওপেন-সোর্স js-yaml লাইব্রেরির সাথে একটি ইন-মেমরি ডেটা কাঠামোতে পার্স করে, তারপর আপনার চাওয়া ফরম্যাট ও লেআউটে তা আবার সিরিয়ালাইজ করে। যেহেতু পার্সিং প্রথমে ঘটে, অবৈধ ফাইল শুরুতেই প্রত্যাখ্যাত হয় এবং পার্সারের এরর বার্তা — সেই লাইন ও কলামসহ যেখানে এটি ব্যর্থ হয়েছে — দেখানো হয়, তাই একই টুল ভ্যালিডেট, ফরম্যাট ও রূপান্তর করে। এর সবকিছু ক্লায়েন্ট-সাইডে চলে, তাই কিছুই আপলোড হয় না।
Beautify বৈধ YAML-কে আপনার বেছে নেওয়া ইনডেন্টসহ পড়ার-উপযোগী ব্লক স্টাইলে আবার নির্গত করে; Minify সংক্ষিপ্ত ফ্লো স্টাইলে বদলে দেয় (ব্রেস ও ব্র্যাকেট, JSON-এর মতো একটি লাইনে) যা তবুও বৈধ YAML; YAML → JSON ও JSON → YAML দুটির মধ্যে ভ্যালু, টাইপ ও গঠন হুবহু সংরক্ষণ করে রূপান্তর করে।
Beautify, minify, ভ্যালিডেট, রূপান্তর
| অ্যাকশন | এটি কী করে |
|---|---|
| Beautify | বৈধ YAML-কে আপনার বেছে নেওয়া 2- বা 4-স্পেস ইনডেন্টসহ পড়ার-উপযোগী ব্লক স্টাইলে আবার ইনডেন্ট ও স্বাভাবিক করে। |
| Minify | ডেটাকে সংক্ষিপ্ত ফ্লো স্টাইলে গুটিয়ে দেয় (JSON-এর মতো একটি লাইনে) — ছোট, তবুও বৈধ YAML। |
| YAML → JSON | YAML পার্স করে সমতুল্য, সুন্দর-ছাপা JSON দেয়। একাধিক ডকুমেন্ট একটি JSON অ্যারে হয়ে যায়। |
| JSON → YAML | JSON পার্স করে সমতুল্য YAML পরিষ্কার ব্লক স্টাইলে দেয়। |
| Validate | প্রতিটি অ্যাকশন প্রথমে ভ্যালিডেট করে — অবৈধ ইনপুটে সঠিক পার্সার এরর ও লাইন দেখায়, তাই এটি একটি লিন্টার হিসেবেও কাজ করে। |
YAML বনাম JSON
YAML ও JSON একই ধরনের ডেটা বর্ণনা করে — ম্যাপিং, সিকোয়েন্স, স্ট্রিং, নম্বর, বুলিয়ান ও null। YAML, JSON-এর একটি সুপারসেট, তাই প্রতিটি JSON ফাইল ইতিমধ্যে বৈধ YAML; পার্থক্য হলো উপরিভাগের সিনট্যাক্স ও কিছু সুবিধার:
| বৈশিষ্ট্য | YAML | JSON |
|---|---|---|
| কমেন্ট | হ্যাঁ — # দিয়ে শুরু হওয়া লাইন | কোনো নেটিভ কমেন্ট সিনট্যাক্স নেই |
| সিনট্যাক্স | ইনডেন্টেশন-ভিত্তিক, ন্যূনতম যতিচিহ্ন | ব্রেস, ব্র্যাকেট, কোট ও কমা |
| স্ট্রিং-এ কোট | সাধারণত ঐচ্ছিক | সর্বদা প্রয়োজন (ডবল কোট) |
| মাল্টি-ডকুমেন্ট | হ্যাঁ — --- দিয়ে আলাদা করা হয় | প্রতি ডকুমেন্টে একটি ভ্যালু |
| ডেটা মডেল | JSON-এর সুপারসেট (প্রতিটি JSON ফাইল বৈধ YAML) | YAML-এর কঠোর উপসমষ্টি |
| সাধারণ ব্যবহার | কনফিগ ফাইল (Kubernetes, Docker Compose, CI, Ansible) | API, ডেটা আদান-প্রদান, স্টোরেজ |
YAML সিনট্যাক্স দ্রুত রেফারেন্স
| সিনট্যাক্স | অর্থ |
|---|---|
key: value | একটি ম্যাপিং (কি/ভ্যালু জোড়া)। কোলনের পরে স্পেস প্রয়োজন। |
- item | একটি সিকোয়েন্স (তালিকা) আইটেম। একই ইনডেন্টে থাকা আইটেমগুলো মিলে একটি তালিকা গঠন করে। |
nested:\n key: value | ইনডেন্টেশন দিয়ে নেস্টিং — প্রতি স্তরে দুই স্পেস প্রথাগত (কখনো ট্যাব নয়)। |
"a string" | কোটেড স্ট্রিং। কোট কেবল তখনই প্রয়োজন যখন ভ্যালুটি অন্যথায় ভুলভাবে পড়া হতে পারে। |
# comment | একটি কমেন্ট — পার্সার উপেক্ষা করে (এবং YAML আবার সিরিয়ালাইজ হলে বাদ পড়ে)। |
--- | একটি ডকুমেন্ট বিভাজক, যাতে একটি ফাইল একাধিক YAML ডকুমেন্ট ধারণ করতে পারে। |
| and > | ব্লক স্কেলার: | নিউলাইন রাখে (লিটারাল), > সেগুলোকে স্পেসে ভাঁজ করে। |
&anchor / *alias | একটি নোডকে একবার & দিয়ে সংজ্ঞায়িত করুন, পুনরাবৃত্তি এড়াতে * দিয়ে পুনরায় ব্যবহার করুন। |
সাধারণ ব্যবহার
- ইনডেন্টেশন ঠিক করুন কোনো Kubernetes, Docker Compose, GitHub Actions বা Ansible ফাইলে কমিট করার আগে।
- ভ্যালিডেট করুন একটি কনফিগ ফাইল এবং সেই সঠিক লাইন খুঁজুন যেখানে পার্সার আটকে যাচ্ছে।
- রূপান্তর করুন কোনো API-এর JSON রেসপন্সকে পড়ার-উপযোগী YAML-এ, বা কোনো YAML কনফিগকে JSON-এ সেই টুলের জন্য যা কেবল JSON গ্রহণ করে।
- স্বাভাবিক করুন হাতে-সম্পাদিত YAML যাতে কোনো দলে ডিফ ছোট ও সামঞ্জস্যপূর্ণ থাকে।
- Minify করুন কোনো কনফিগকে একটি লাইনে এমবেড করতে (উদাহরণস্বরূপ অন্য কোনো YAML বা শেল ভেরিয়েবলের ভেতরে)।
কমেন্ট সম্পর্কে একটি নোট
YAML কমেন্ট (# like this) পার্স করা ডেটার অংশ নয়, তাই — প্রতিটি লাইব্রেরি-ভিত্তিক
YAML ফরম্যাটারের মতো — সেগুলো পার্স-এবং-আবার-সিরিয়ালাইজ চক্রে বহন করা হয় না। কমেন্ট প্রয়োজন হলে
মূলটির একটি কপি রাখুন; ডেটাকে নিজে ভ্যালিডেট, পুনর্গঠন বা রূপান্তর করতে এই টুলটি ব্যবহার করুন।
গোপনীয়তা
ফরম্যাটিং, ভ্যালিডেশন ও রূপান্তর সবই আপনার ব্রাউজারে স্থানীয়ভাবে ঘটে। আপনার YAML কখনো আপনার ডিভাইস থেকে বাইরে যায় না, কিছুই লগ হয় না এবং কোনো নেটওয়ার্ক অনুরোধ নেই — সেই কনফিগ ফাইলের জন্য নিরাপদ যেগুলোতে হোস্টনেম, সিক্রেট বা অন্যান্য সংবেদনশীল ভ্যালু থাকে। লোড হওয়ার পরে এটি অফলাইনেও কাজ করতে থাকে।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
- YAML ফরম্যাটার কী করে?
- এটি আপনার YAML পড়ে, যাচাই করে এটি বৈধ কিনা, এবং একটি পরিষ্কার, সামঞ্জস্যপূর্ণ লেআউটে তা আবার লেখে। Beautify সবকিছুকে আপনার বেছে নেওয়া 2- বা 4-স্পেস প্রস্থে পড়ার-উপযোগী ব্লক স্টাইলে আবার ইনডেন্ট করে; Minify তা সংক্ষিপ্ত ফ্লো স্টাইলে গুটিয়ে দেয় (JSON-এর মতো একটি লাইনে) যা তবুও বৈধ YAML। যেহেতু দুটোই প্রথমে ডকুমেন্ট পার্স করে, অবৈধ ফাইল সঙ্গে সঙ্গে ধরা পড়ে এবং সঠিক পার্সার এরর দেখানো হয় — তাই এই টুলটি একটি YAML ভ্যালিডেটর ও লিন্টার হিসেবেও কাজ করে।
- আমি কীভাবে YAML-কে JSON-এ (বা JSON-কে YAML-এ) রূপান্তর করব?
- আপনার ডেটা পেস্ট করুন এবং “YAML → JSON” বা “JSON → YAML”-এ ক্লিক করুন। টুলটি সোর্সকে একটি ইন-মেমরি ডেটা কাঠামোতে পার্স করে এবং লক্ষ্য ফরম্যাটে আবার সিরিয়ালাইজ করে, তাই ভ্যালু, টাইপ ও গঠন হুবহু সংরক্ষিত থাকে। YAML হলো JSON-এর সুপারসেট, তাই প্রতিটি JSON ফাইল ইতিমধ্যে বৈধ YAML; উল্টো দিকে রূপান্তর করলে তা কেবল YAML-এর পরিষ্কার, ইনডেন্টেশন-ভিত্তিক লেআউট ব্যবহার করে। আপনার YAML-এ --- দিয়ে আলাদা করা একাধিক ডকুমেন্ট থাকলে, JSON-এ রূপান্তর করলে সেই ডকুমেন্টগুলোর একটি JSON অ্যারে তৈরি হয়।
- ফরম্যাটিংয়ের পরে আমার কমেন্টগুলো উধাও হলো কেন?
- YAML কমেন্ট (# দিয়ে শুরু হওয়া লাইন) মানুষের জন্য মেটাডেটা — সেগুলো পার্স করা ডেটার অংশ নয়। একটি ফরম্যাটার ডকুমেন্টকে তার ডেটা কাঠামোতে পার্স করে এবং তারপর আবার সিরিয়ালাইজ করে কাজ করে, এবং সেই চক্র কমেন্টগুলোকে বহন করে না। এটি প্রতিটি লাইব্রেরি-ভিত্তিক YAML ফরম্যাটারের, এই টুলসহ, মানক আচরণ। কমেন্ট রাখতে চাইলে ফাইলটি হাতে সম্পাদনা করুন বা এমন একটি এডিটর প্লাগইন ব্যবহার করুন যা সেগুলো সংরক্ষণ করে; ডেটাকে নিজে ভ্যালিডেট, পুনর্গঠন বা রূপান্তর করতে এই টুলটি ব্যবহার করুন।
- এটি কি মাল্টি-ডকুমেন্ট YAML ফাইল সমর্থন করে?
- হ্যাঁ। YAML ফাইলে --- লাইন দিয়ে আলাদা করা একাধিক ডকুমেন্ট থাকতে পারে (Kubernetes ম্যানিফেস্টে সাধারণ)। ফরম্যাটার সেগুলো সবই পার্স করে: Beautify ও Minify প্রতিটি ডকুমেন্টকে --- বিভাজকসহ আবার নির্গত করে, এবং “YAML → JSON” প্রতি ডকুমেন্টে একটি উপাদানসহ একটি JSON অ্যারে ফেরত দেয়। একক-ডকুমেন্ট ফাইলকে একটি সাধারণ অবজেক্ট হিসেবে সামলানো হয়, অ্যারেতে মোড়া হয় না।
- আমার YAML কি কোথাও আপলোড হয়?
- না। সমস্ত পার্সিং, ফরম্যাটিং ও রূপান্তর ওপেন-সোর্স js-yaml লাইব্রেরির সাথে আপনার ব্রাউজারে ঘটে — আপনার ডেটা কখনো আপনার ডিভাইস থেকে বাইরে যায় না, কিছুই লগ হয় না এবং কোনো নেটওয়ার্ক অনুরোধ নেই। পৃষ্ঠা লোড হওয়ার পরে এটি অফলাইনেও কাজ করতে থাকে, যা এটিকে হোস্টনেম, সিক্রেট বা অন্যান্য সংবেদনশীল ভ্যালু ধারণকারী কনফিগারেশন ফাইলের জন্য নিরাপদ করে তোলে।