Markdown তালিকা প্রদর্শনের প্রযুক্তিগত ভিত্তি
Markdown আধুনিক সফটওয়্যার ডকুমেন্টেশন, প্রযুক্তিগত স্পেসিফিকেশন ডকুমেন্ট, ব্যক্তিগত জ্ঞানভিত্তি এবং ডেভেলপার যোগাযোগের জন্য মানক মার্কআপ ভাষা হিসেবে নিজেকে প্রতিষ্ঠিত করেছে। একস্তরের বুলেটযুক্ত তালিকা (- item) এবং সংখ্যাযুক্ত তালিকা (1. item) সহজ মনে হলেও, গভীরভাবে নেস্টেড, বহুস্তরীয় ডকুমেন্ট আউটলাইন তৈরি করা উল্লেখযোগ্য ফরম্যাটিং জটিলতা নিয়ে আসে। বিভিন্ন Markdown পার্সার—যেমন CommonMark, GitHub স্বাদের Markdown (GFM), পাইথন-Markdown, এবং Pandoc—তালিকা মার্কার নির্বাচন, ট্যাব-টু-স্পেস অনুপাত, এবং সাব-ব্লক ইন্ডেন্টেশন সম্পর্কিত কঠোর, সূক্ষ্ম নিয়ম প্রয়োগ করে।
যখন তালিকাগুলো বিভিন্ন ধরনের টেক্সট এডিটরে (যেমন VS Code, Sublime Text, Xcode, Apple Notes, বা Microsoft Word) পেস্ট করা হয়, তখন চুপচাপ ইন্ডেন্টেশন ত্রুটি ঘটে। একটি সাব-আইটেমে একটি মাত্র স্পেস অনুপস্থিত থাকলে Markdown কম্পাইলার একটি নেস্টেড চাইল্ড নোডকে প্রাথমিক টপ-লেভেল আইটেম বা একটি পৃথক প্যারাগ্রাফ ব্লক হিসেবে ব্যাখ্যা করে। Utiliome's Nested List & Indentation Formatter এই পার্সিং ত্রুটিগুলো দূর করে আপনার ইনপুট টেক্সটের স্ট্রাকচার AST (Abstract Syntax Tree) পার্স করে এবং মানসম্মত, স্পেসিফিকেশান-অনুগত Markdown পুনরায় জেনারেট করে।
ইন্ডেন্টেশনের নিয়ম: 2-স্পেস বনাম 4-স্পেস নির্দেশিকা
প্রযুক্তিগত ডকুমেন্টেশনের ডিজাইনে সবচেয়ে সাধারণ তর্কগুলোর একটি হল সাব-লিস্টগুলোতে 2 স্পেস ব্যবহার করা উচিত নাকি 4 স্পেস প্রতিটি হায়ারার্কিক্যাল স্তরের জন্য। এই চয়ন লক্ষ্য Markdown পার্সার স্পেসিফিকেশনের উপর নির্ভর করে:
2-স্পেস ইন্ডেন্টেশন নিয়ম (স্ট্যান্ডার্ড GFM ও প্রেটিয়ার): আধুনিক ওয়েব ডকুমেন্টেশন ইকোসিস্টেম যেমন GitHub, Docusaurus, Nextra এবং Obsidian-এ, প্রতিটি ইন্ডেন্টেশন স্তরের জন্য ২ স্পেস গ্রহণকৃত স্ট্যান্ডার্ড। ২-স্পেস রীতি প্যারেন্ট আইটেমের টেক্সট শুরু নির্দেশের নিচে চাইল্ড কনটেন্টকে সঙ্গতিপূর্ণভাবে স্থাপন করে:
- Top-level item 1 - Nested child item 1.1 - Nested child item 1.2 - Deeply nested grandchild item 1.2.1 - Top-level item 2৪-স্পেস ইন্ডেন্টেশন নিয়ম (কঠোর CommonMark ও পাইথন-Markdown): কঠোর CommonMark বাস্তবায়নগুলিতে চাইল্ড ব্লক, কোড স্নিপেট এবং অর্ডার্ড লিস্টের ভিতরের নেস্টেড লিস্টগুলোকে যথাযথ প্যারেন্ট ব্লক ধারণের নিশ্চয়তার জন্য ৪ স্পেস (অথবা ১ পূর্ণ ট্যাব স্টপ) দ্বারা ইন্ডেন্ট করা আবশ্যক:
1. First ordered step in workflow - Associated sub-bullet A - Associated sub-bullet B 2. Second ordered step in workflowট্যাব বনাম স্পেস ফাঁদ: ফিজিক্যাল ট্যাব চরিত্র (
\t) এবং ASCII স্পেস চরিত্র (\x20) একত্রিত করা ভাঙা Markdown ডকুমেন্টেশন রেন্ডারিং-এর প্রধান কারণ। ওয়েব রেন্ডারিং ইঞ্জিনগুলো ট্যাবকে অসঙ্গতভাবে অনুবাদ করে (প্রায়শই ৪ বা ৮ ডিসপ্লে কলাম হিসেবে), যার ফলে নেস্টেড আইটেমগুলো ভিজ্যুয়ালি সঠিক রেখায় থাকে না। Utiliome আপনার স্পষ্ট কনফিগারেশন পছন্দ অনুযায়ী সব ট্যাব চরিত্রকে স্বয়ংক্রিয়ভাবে বিএকইকৃত স্পেস স্ট্রিংতে রূপান্তর করে।
বুলেট মার্কার এবং অর্ডার্ড সিকোয়েন্স ঠিক করা
Markdown আনওর্ডারড তালিকার জন্য তিনটি ভিন্ন বুলেট চরিত্রকে সমর্থন করে: হাইফেন (-), অ্যাস্টারিস্ক (*), এবং প্লাস সাইন (+)। যদিও তিনটি থেকেই বৈধ আনওর্ডারড তালিকা তৈরি করা যায় HTML উপাদান (<ul>), একই ডকুমেন্টে মার্কার ধরন মিশ্রিত করলে ভিজ্যুয়াল বিশৃঙ্খলা তৈরি হয় এবং স্বয়ংক্রিয় লিন্টার চেক (যেমন markdownlint নিয়ম MD004) ব্যর্থ হয়।
আরও, পুনরাবৃত্তি সম্পাদনার সময় অর্ডারড তালিকার নম্বরিং প্রায়ই ভেঙে যায়। লেখকেরা প্রায়ই সংখ্যাযুক্ত ক্রমের মধ্যে আইটেমগুলো পেস্ট করেন বা স্বয়ংক্রিয়ভাবে বৃদ্ধি হওয়া 1. সিনট্যাক্সের উপর নির্ভর করেন:
<!-- Unformatted / Broken Input -->
* Feature A
- Feature B
+ Feature C
1. Initial step
1. Second step (copied from draft)
4. Out-of-order step
Utiliome এর ফরম্যাটার সমস্ত অর্ডারবিহীন তালিকার চিহ্নকে আপনার নির্বাচিত একীভূত অক্ষরে স্বাভাবিক করে (যেমন, প্রতিটি আইটেমকে - রূপে মানকরণ করা) এবং অর্ডারড ক্রমগুলোকে ধারাবাহিকভাবে পুনঃনম্বরায়িত করে (1., 2., 3.) অথবা আপনার দলের কোড রিভিউ স্টাইল নির্দেশিকার উপর ভিত্তি করে সেগুলোকে পরিষ্কার এক অঙ্কের বৃদ্ধি (1., 1., 1.) হিসেবে মানকরণ করে।