پایه فنی رندر فهرست 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 (درخت نحو انتزاعی) و بازتولید Markdown استاندارد و مطابق مشخصات حذف میکند.
قاعده تورفتگی: رهنمود ۲ فاصله در برابر ۴ فاصله
یکی از پرتکرارترین بحثها در طراحی مستند فنی این است که زیرفهرست با ۲ فاصله تورفته شود یا ۴ فاصله در هر طبقه سلسلهمراتبی. انتخاب به مشخصات تجزیهگر Markdown هدف بستگی دارد:
قاعده تورفتگی ۲ فاصله (GFM استاندارد و Prettier): در اکوسیستم مستند وب مدرن مثل GitHub، Docusaurus، Nextra و Obsidian، ۲ فاصله در هر سطح تورفتگی استاندارد شناختهشده است. قرارداد ۲ فاصله محتوای فرزند را زیر شروع متن آیتم والد همتراز میکند:
- آیتم سطح بالا ۱ - آیتم فرزند تودرتو ۱٫۱ - آیتم فرزند تودرتو ۱٫۲ - آیتم نوه عمیق تودرتو ۱٫۲٫۱ - آیتم سطح بالا ۲قاعده تورفتگی ۴ فاصله (CommonMark سخت و Python-Markdown): پیادهسازی سخت CommonMark میخواهد بلوک فرزند، قطعه کد و فهرست تودرتو داخل فهرست مرتب ۴ فاصله (یا یک توقف تب کامل) تورفته باشد تا دربرگیری بلوک والد درست تضمین شود:
1. اولین گام مرتب در گردش کار - گلوله فرعی مرتبط الف - گلوله فرعی مرتبط ب 2. دومین گام مرتب در گردش کاردام تب در برابر فاصله: مخلوط کردن نویسه تب فیزیکی (
\t) با نویسه فاصله ASCII (\x20) علت اصلی رندر شکسته مستند Markdown است. موتور رندر وب تب را ناسازگار ترجمه میکند (اغلب ۴ یا ۸ ستون نمایش) و آیتم تودرتو دیداری از همترازی میپرد. Utiliome همه نویسه تب را طبق ترجیح پیکربندی صریح شما به رشته فاصله یکدست تبدیل میکند.
یکدست کردن نشانگر گلوله و تعمیر دنباله مرتب
Markdown سه نویسه گلوله متمایز برای فهرست نامرتب پشتیبانی میکند: خط تیره (-)، ستاره (*) و علامت مثبت (+). هرچند هر سه عنصر HTML فهرست نامرتب معتبر (<ul>) میسازند، مخلوط کردن نوع نشانگر در یک سند شلوغی دیداری میسازد و بررسی لینتر خودکار (مثل قاعده MD004 در markdownlint) را رد میکند.
علاوه بر این، شمارهگذاری فهرست مرتب هنگام ویرایش تکراری اغلب میشکند. نویسنده اغلب آیتم را وسط دنباله شمارهدار میچسباند یا به نحو خودافزاینده 1. تکیه میکند:
<!-- ورودی بدون قالب / شکسته -->
* قابلیت الف
- قابلیت ب
+ قابلیت ج
1. گام اولیه
1. گام دوم (کپی از پیشنویس)
4. گام خارج از ترتیب
قالببند Utiliome همه نشانگر فهرست نامرتب را به نویسه یکپارچه انتخابی شما نرمال میکند (مثلاً یکدست کردن هر آیتم به -) و دنباله مرتب را پیاپی شمارهگذاری میکند (1.، 2.، 3.) یا بر اساس رهنمود سبک بازبینی کد تیم به افزایش تکرقمی تمیز (1.، 1.، 1.) استاندارد میکند.