عنوانهای تکراری مارکداون را بدون تداخل پیوند دهید
عنوانهای تکراری نمیتوانند یک شناسهٔ HTML مشترک داشته باشند. عنوان اول لنگر پایه را نگه میدارد و موارد بعدی پسوند شمارشی میگیرند: دومی ۲، سومی ۳. این ابزار دقیقاً همان شناسهها را پیش از عنوانها درج میکند و همان مقادیر را در پیوندهای تولیدشده به کار میبرد، بنابراین هر ورودی به بخش متفاوتی میرسد.
مارکداون با فهرست مطالب
سند اصلی با یک بلوک تولیدشدهٔ قابلجایگزینی و لنگرهای صریح HTML پیش از عنوانها.
هر عنوان پیوندشده
| ۳ | ۲ | Install | install |
| ۵ | ۳ | Linux | linux |
| ۷ | ۲ | Install! | install-2 |
| ۹ | ۳ | Windows | windows |
| ۱۱ | ۲ | Install | install-3 |
دو عنوان با نام Install بهجای دو پیوند به یک مقصد، به دو لنگر متمایز تبدیل میشوند: اولی نام ساده و دومی همان نام با پسوند ۲.
تشخیص تکراری پس از نرمالسازی بزرگی حروف، علائم نگارشی و فاصلهها انجام میشود، بنابراین Install! و Install همچنان میتوانند با هم تداخل کنند.
جدول نگاشت عنوانها، لنگر نهایی اختصاصیافته به هر خط منبع را پیش از دانلود سند نشان میدهد.
چگونگی کار
مراحل انجام کار
- پایان خطوط را یکسانسازی کنید و فقط بلوک کامل فهرست مطالب و خطوط لنگری را که پیشتر همین ابزار تولید کرده حذف کنید.
- خطوط را به ترتیب اسکن کنید، حصارهای بکتیک و مد (~) را دنبال کنید و کد تورفته با چهار فاصله یا تب را نادیده بگیرید، سپس عنوانهای ATX و Setext را تشخیص دهید.
- هر عنوان واردشده را به یک اسلاگ یونیکد با حروف کوچک ساده کنید، سپس هرگاه نامهای نرمالشده تداخل کنند پسوند شمارشی بیفزایید، یعنی ۲ برای دومی، ۳ برای سومی و همینطور تا آخر.
- لنگر دقیق HTML را پیش از هر عنوان واردشده درج کنید و یک فهرست تودرتوی نشانهگذاریشده را پس از عنوان آغازین سطح یک یا در ابتدای سند قرار دهید.
فرضها
- کمعمقترین سطح انتخابشده عمیقتر از بیشترین سطح انتخابشده نیست.
- اسکنر عنوانهای معمولی ATX و عنوانهای تکخطی Setext مطابق CommonMark را هدف میگیرد؛ یک رندرکنندهٔ کامل مارکداون با افزونههای خاص نیست.
- رندرکنندهٔ مقصد لنگرهای خام HTML را مجاز میداند. پلتفرمی که HTML نوشتهشده توسط نویسنده را حذف میکند، این مقصدهای صریح را هم حذف خواهد کرد.
- شناسههای HTML موجود بدون نشانگر و یک بلوک نشانگر تولیدشدهٔ ناقص، محتوای نویسنده تلقی میشوند و هرگز حذف نمیشوند.
پرسشهای رایج
چرا برای رفع عنوانهای تکراری به رندرکننده تکیه نمیکنید؟
قواعد پسوند در رندرکنندهها متفاوت است و بخشی از مارکداون اصلی نیست. شناسههای صریح، پیوند را به بخشی از خود سند هدف میگیرند، نه به یک قرارداد مستندنشدهٔ میزبان.
وقتی عنوان فقط علائم نگارشی داشته باشد چه میشود؟
پایهٔ آن section میشود و اگر بیش از یک عنوانِ صرفاً نگارشی وارد شود، همان پسوندهای عددی به دنبالش میآیند.
منابع
روش کامل، مثال محاسبهشده و همهٔ فرضهای این نتیجه در این صفحه آمده است: سازندهٔ فهرست مطالب مارکداون.