YAML ফরম্যাটার ও ভ্যালিডেটর

YAML পেস্ট করুন, ২-স্পেস ইন্ডেন্টেশনে ফরম্যাট করুন, অথবা সিনট্যাক্স যাচাই করুন। YAML 1.2 কঠোর মোড। কোনো আপলোড নেই।

  1. বাম টেক্সট এরিয়ায় আপনার YAML পেস্ট করুন।
  2. ফরম্যাট ক্লিক করুন যাতে পার্সারের মধ্য দিয়ে রাউন্ড-ট্রিপ হয়ে ক্যাননিকাল YAML বের হয়।
  3. ভ্যালিডেট ক্লিক করুন ইনপুট পরিবর্তন না করেই সিনট্যাক্স পরীক্ষা করতে।
  4. ত্রুটি ভুল লাইন এবং কলামের দিকে ইঙ্গিত করে।
এটি কী করে?

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-এর মতো একটি নিবেদিত লিন্টার দরকার।