0

جدول محتويات المولد

الصق Markdown أو HTML واحصل على جدول محتويات متداخل وقابل للنقر مع روابط ربط حقيقية آمنة على نمط GitHub، بالإضافة إلى المحتوى الأصلي مع إدخال معرفات العناوين.

يبحث الاكتشاف التلقائي عن علامات

-

الحقيقية أولاً، ثم عناوين Markdown #.

يضيف سمة {#slug} بعد كل عنوان - بدعم من kramdown وPandoc وMkDocs وGitHub Pages (Jekyll).

Buy Me a Coffee at ko-fi.com
جارٍ المعالجة... 0%
الكشف عن تنسيق المحتوى
تحليل العناوين
تعيين الرخويات الآمنة للتصادم
بناء جدول المحتويات

النتيجة

يكون جدول المحتويات مفيدًا بقدر الروابط الأساسية الموجودة أسفله، ولا تكون الروابط الموثوقة موثوقة إلا إذا حصل كل عنوان على ارتباط ثابت فريد يمكن التنبؤ به. يقوم هذا المولد بتحليل العناوين من كل ما تلصقه - Markdown أو HTML - ويعين لكل منها مرساة حقيقية على غرار GitHub: نص صغير، واستبدال المسافات وعلامات الترقيم أو تجريدها، والأهم من ذلك، لاحقة حقيقية آمنة من الاصطدام عندما ينتج عن عنوانين نفس سبيكة. تصبح "المقدمة" الثانية في المستند مقدمة -1، والثالثة تصبح مقدمة -2، ويتم تتبعها باستخدام خريطة الأحداث الجارية تمامًا بالطريقة التي تعمل بها GitHub - وليس اختصارًا يقوم بالكتابة بصمت فوق الروابط السابقة عند تكرار العناوين، وهي الطريقة الوحيدة الأكثر شيوعًا لكسر البرامج النصية لجدول المحتويات المدرفلة يدويًا.

يعتمد تحليل Markdown على السطر حسب الغرض، لأن وضع الفشل الكلاسيكي للتنفيذ الساذج يتعامل مع "#" المكتوب داخل كتلة تعليمات برمجية مسيجة كعنوان. تتتبع هذه الأداة ما إذا كان السياج ``` أو ~~~ مفتوحًا حاليًا أثناء سير المستند سطرًا تلو الآخر، وتتعرف فقط على عناوين ATX (من # إلى ######) خارج الأسوار المفتوحة - لذا فإن نموذج التعليمات البرمجية الذي يعرض تعليقات الصدفة أو "# تعليق" Python لا يلوث جدول المحتويات الخاص بك أبدًا. يأخذ إدخال HTML مسارًا مختلفًا وحقيقيًا بنفس القدر: يتم تحليله باستخدام DOMParser الخاص بالمتصفح، ويتم تحديد العناوين حسب اسم العلامة، ويتم تعيين سمة المعرف الخاصة بكل منها مباشرةً على العنصر الفعلي قبل إجراء تسلسل للمستند مرة أخرى إلى سلسلة.

شيئين يخرجان من الطرف الآخر. أولاً، جدول المحتويات نفسه، الذي يتم تصديره كقائمة Markdown متداخلة (- [Title](#slug)، مع مسافة بادئة بمستوى العنوان) وقائمة HTML متداخلة (<ul><li><a href="#slug">)، ولكل منها زر نسخ خاص بها. ثانيًا، المحتوى الأصلي الخاص بك مع نقاط الارتساء المثبتة فعليًا: بالنسبة لإدخال Markdown، يمكنك اختيار بنية سمة العنوان {#slug} المدعومة على نطاق واسع والتي تستخدمها kramdown وPandoc وMkDocs وGitHub Pages' Jekyll، أو الرجوع إلى علامات عناوين HTML العادية مع تعيين id="slug" بالفعل إذا كان العارض المستهدف لا يفهم بناء جملة السمة. بالنسبة لإدخال HTML، يتم إدخال المعرف مباشرة في عنصر العنوان الذي تم تحليله - لا يوجد "وضع" منفصل للاختيار لأن العلامات موجودة بالفعل.

يتم تشغيل كل شيء محليًا في متصفحك: تتم عملية التحليل والحسابات الثابتة وإعادة تجميع المستند في JavaScript على الصفحة التي تنظر إليها الآن، دون تحميل أي شيء في أي مكان. وهذا مهم بالنسبة لمسودات الوثائق، أو مواقع الويكي الداخلية، أو منشور مدونة غير منشور لا تكون مستعدًا للصقه في خدمة جهة خارجية فقط للحصول على جدول محتويات عملي.