YAML ফরম্যাটার ও ভ্যালিডেটর
YAML পেস্ট করুন, ২-স্পেস ইন্ডেন্টেশনে ফরম্যাট করুন, অথবা সিনট্যাক্স যাচাই করুন। YAML 1.2 কঠোর মোড। কোনো আপলোড নেই।
- বাম টেক্সট এরিয়ায় আপনার YAML পেস্ট করুন।
- ফরম্যাট ক্লিক করুন যাতে পার্সারের মধ্য দিয়ে রাউন্ড-ট্রিপ হয়ে ক্যাননিকাল YAML বের হয়।
- ভ্যালিডেট ক্লিক করুন ইনপুট পরিবর্তন না করেই সিনট্যাক্স পরীক্ষা করতে।
- ত্রুটি ভুল লাইন এবং কলামের দিকে ইঙ্গিত করে।
এটি কী করে?
js-yaml-এর YAML 1.2 কঠোর মোডে আপনার YAML পার্স করে এবং 2-স্পেস ইন্ডেন্টেশন, 100-কলাম লাইন প্রস্থ এবং সামঞ্জস্যপূর্ণ উদ্ধৃতি সহ এটি পুনরায় এমিট করে। ভ্যালিডেট বোতাম ইনপুট পরিবর্তন না করেই সিনট্যাক্স পরীক্ষা করে এবং প্রথম ত্রুটি রিপোর্ট করে। আউটপুট ইনপুটের সাথে শব্দার্থগতভাবে সমতুল্য — মান, প্রকার এবং গঠন সংরক্ষিত।
উদাহরণ
অগোছালো YAML ইনপুট:
name: Ada
tags: [math,logic]
active:true ফরম্যাট করা আউটপুট:
name: Ada
tags:
- math
- logic
active: true সাধারণ YAML ত্রুটি এবং কীভাবে ঠিক করবেন
কঠোর মোডে YAML 1.2 হোয়াইটস্পেস সম্পর্কে অমার্জনীয়। নিচের প্যাটার্নগুলো বেশিরভাগ পার্সার ব্যর্থতা কভার করে।
- স্পেসের পরিবর্তে ট্যাব। YAML 1.2 ইন্ডেন্টেশনের জন্য ট্যাব নিষিদ্ধ করে। প্রতিটি ট্যাবকে স্পেস দিয়ে প্রতিস্থাপন করুন।
- অসঙ্গত ইন্ডেন্ট স্তর। 4 স্পেস ইন্ডেন্টেড ভাইয়ের অধীনে 2 স্পেস ইন্ডেন্টেড সন্তান ব্যর্থ হবে। একটি ইন্ডেন্ট প্রস্থ বেছে নিন এবং সামঞ্জস্যপূর্ণভাবে ব্যবহার করুন।
- বুলিয়ান ফাঁদ। YAML 1.1-এ (এখানে মোড নয়), `yes`, `no`, `on`, `off` বুলিয়ান হিসাবে পার্স হত। js-yaml 1.2 ব্যবহার করে, কিন্তু পুরোনো আচরণের উপর নির্ভর করা বাস্তব ইনপুটগুলি ব্যবহারকারীদের অবাক করে। অস্পষ্ট মান উদ্ধৃত করুন: `country: "NO"`।
- উদ্ধৃতি ছাড়া বিশেষ অক্ষর। `:`, `?`, `&`, `*`, `!`, `|`, `>`, `\'`, `"`, `%`, `@`, `` ` `` দিয়ে শুরু হওয়া মানগুলির উদ্ধৃতি প্রয়োজন।
- অসমাপ্ত উদ্ধৃতি। অনুপস্থিত শেষ উদ্ধৃতি পার্সারকে বাকি ফাইলকে স্ট্রিংয়ের অংশ হিসাবে শোষণ করতে বাধ্য করে। রিপোর্ট করা লাইন নম্বর প্রকৃত ত্রুটি থেকে অনেক দূরে হতে পারে।
- অ্যাঙ্কর / অ্যালিয়াস অমিল। একটি অ্যালিয়াস `*name` অঘোষিত অ্যাঙ্কর `&name` উল্লেখ করে ত্রুটি তোলে। প্রতিটি অ্যালিয়াসের আগে একটি মেলে যাওয়া অ্যাঙ্কর ঘোষিত আছে কিনা যাচাই করুন।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
ফরম্যাট কি আমার ডেটা পরিবর্তন করে?
না — শুধুমাত্র হোয়াইটস্পেস, উদ্ধৃতি এবং উপস্থাপনা বিবরণের ক্রম। পার্স করা মান গ্রাফ অভিন্ন। ফরম্যাট করা YAML মূলের মতো একই ইন-মেমরি গঠনে পুনরায় পার্স হয়।
ফরম্যাট করার সময় মন্তব্য কি সংরক্ষিত থাকে?
না। js-yaml পার্স-এন্ড-ডাম্প রাউন্ড-ট্রিপের মাধ্যমে মন্তব্য বজায় রাখে না। যদি মন্তব্য-সংরক্ষণকারী YAML ফরম্যাটিং প্রয়োজন হয়, একটি ভিন্ন লাইব্রেরি (অপশন সহ yaml.js, বা `prettier --parser yaml`-এর মতো একটি CLI টুল) ব্যবহার করুন।
আমি কি ইন্ডেন্টেশন কাস্টমাইজ করতে পারি?
বর্তমান বিল্ড 2-স্পেস ইন্ডেন্টেশন ব্যবহার করে। কাস্টমাইজ করতে, কমান্ড লাইনে js-yaml চালান — একই লাইব্রেরি — এবং `{ indent: 4 }` বা যা আপনার দরকার তা পাস করুন।
এটি কত বড় YAML ফাইল সামলাতে পারে?
টেক্সট এরিয়া ধীর হওয়ার আগে প্রায় 10 MB পর্যন্ত। বেশিরভাগ কনফিগ ফাইল 1 MB-এর অনেক নিচে।
আমার YAML কি আপলোড হয়?
না। সব আপনার ব্রাউজারে চলে — আপনার ইনপুট এই পেজের JavaScript দ্বারা পার্স ও পুনরায়-সিরিয়ালাইজ হয় এবং কখনো কোনো সার্ভারে পাঠানো হয় না।
এটি কি ডুপ্লিকেট কী-এর মতো স্টাইল সমস্যার জন্য লিন্ট করে?
js-yaml ডিফল্ট কনফিগে ডুপ্লিকেট কী প্রত্যাখ্যান করবে (একটি YAML 1.2 কঠোর প্রয়োজন)। অসঙ্গত উদ্ধৃতি বা অ্যাঙ্কর নামকরণের মতো অন্যান্য স্টাইল সমস্যা ফ্ল্যাগ করা হয় না — এর জন্য yamllint-এর মতো একটি নিবেদিত লিন্টার দরকার।