Markdown فہرست رینڈرنگ کی تکنیکی بنیاد
Markdown جدید سافٹ ویئر دستاویزات، تکنیکی اسپیس، ذاتی نالج بیسز اور ڈویلپر مواصلات کی معیاری مارک اپ زبان بن چکی ہے۔ سنگل لیول بلیٹ (- item) اور نمبر والی فہرستیں (1. item) سادہ لگتی ہیں، مگر گہری نیسٹڈ کئی سطحی آؤٹ لائنز نمایاں فارمیٹنگ پیچیدگی لاتی ہیں۔ مختلف Markdown پارسرز—CommonMark، GitHub Flavored Markdown (GFM)، Python-Markdown، اور Pandoc—فہرست مارکر انتخاب، ٹیب ٹو اسپیس تناسب اور ذیلی بلاک انڈینٹیشن پر سخت، باریک رولز نافذ کرتے ہیں۔
جب فہرستیں مختلف ٹیکسٹ ایڈیٹرز (VS Code، Sublime Text، Xcode، Apple Notes، یا Microsoft Word) سے چسپاں ہوں تو خاموش انڈینٹیشن غلطیاں ہوتی ہیں۔ ذیلی آئٹم پر ایک غائب اسپیس Markdown کمپائلر کو نیسٹڈ چائلڈ کو ٹاپ لیول آئٹم یا الگ پیراگراف سمجھنے پر مجبور کرتی ہے۔ Utiliome کا نیسٹڈ فہرست اور انڈینٹیشن فارمیٹر ان پٹ متن کی AST (Abstract Syntax Tree) پارس کر کے معیاری، اسپیس کے مطابق Markdown دوبارہ بنا کر یہ اینوملیز ختم کرتا ہے۔
انڈینٹیشن رولز: 2-اسپیس بمقابلہ 4-اسپیس رہنما خطوط
تکنیکی دستاویزات میں سب سے عام بحث یہ ہے کہ ذیلی فہرستیں فی درجہ 2 اسپیس سے انڈینٹ ہوں یا 4 سے۔ انتخاب ہدف Markdown پارسر اسپیس پر منحصر ہے:
2-اسپیس انڈینٹیشن رول (معیاری GFM اور Prettier): GitHub، Docusaurus، Nextra اور Obsidian جیسے جدید ویب دستاویزی ماحول میں فی سطح 2 اسپیس تسلیم شدہ معیار ہے۔ 2-اسپیس کنونشن چائلڈ مواد کو پیرنٹ آئٹم کے متن کے آغاز کے نیچے سیدھ دیتا ہے:
- Top-level item 1 - Nested child item 1.1 - Nested child item 1.2 - Deeply nested grandchild item 1.2.1 - Top-level item 24-اسپیس انڈینٹیشن رول (سخت CommonMark اور Python-Markdown): سخت CommonMark نفاذ آرڈرڈ فہرستوں کے اندر چائلڈ بلاکس، کوڈ سنپٹس اور نیسٹڈ فہرستوں کو درست پیرنٹ کنٹینمنٹ کے لیے 4 اسپیس (یا 1 مکمل ٹیب اسٹاپ) انڈینٹ مانگتے ہیں:
1. First ordered step in workflow - Associated sub-bullet A - Associated sub-bullet B 2. Second ordered step in workflowٹیب بمقابلہ اسپیس جال: فزیکل ٹیب کریکٹرز (
\t) کو ASCII اسپیس (\x20) کے ساتھ ملانا ٹوٹی Markdown دستاویز رینڈرنگ کی سب سے بڑی وجہ ہے۔ ویب رینڈرنگ انجن ٹیبز کو غیر یکساں ترجمہ کرتے ہیں (اکثر 4 یا 8 کالم)، جس سے نیسٹڈ آئٹمز بصری طور پر بے ترتیب ہو جاتے ہیں۔ Utiliome تمام ٹیب کریکٹرز کو آپ کی واضح ترجیح کے مطابق یکساں اسپیس سٹرنگز میں بدل دیتا ہے۔
بلیٹ مارکرز کی یکسانیت اور آرڈرڈ سیکوئنس اصلاح
Markdown غیر ترتیب شدہ فہرستوں کے لیے تین بلیٹ کریکٹرز سپورٹ کرتا ہے: ہائفن (-)، ایسٹریسک (*)، اور پلس (+)۔ تینوں درست <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.) بناتا ہے۔