|||
-|-|-|
| نظرة عامة | يتيح لك DiscoTOC إنشاء قائمة محتويات لموضوعك بنقرة واحدة.
|
| معاينة | Beginner's guide to using Discourse Themes (يرجى زيارة الرابط في علامة تبويب جديدة) |
| رابط المستودع | https://github.com/discourse/DiscoTOC
|ليس لديك فكرة عن سمات Discourse؟ | يرجى زيارة صفحة الويب الرسمية المتعلقة بـ دليل المبتدئين لاستخدام سمات Discourse.
مثال
سطح المكتب
الجوال
الميزات
toc = table of contents (قائمة المحتويات)
- بنقرة واحدة لإنشاء قائمة محتويات بناءً على المحتوى الحالي عبر زر الإعدادات فوق القائمة
- ستكون قائمة المحتويات مرئية دائمًا في الصفحة - يتم مزامنة المحتوى المتمرر مع روابط الموضوع
- عند التمرير فوق موضوع في الصفحة الحالية، سيتم تمييز قائمة المحتويات المقابلة لهذا الموضوع (يظهر باللون الأخضر)
- إضافة سمات للعناوين (يمكنك الارتباط بمحتوى معين من مواضيع / مشاركات أخرى)
- بالنقر على رابط موضوع قائمة المحتويات، سينتقل المتصفح إلى الموضع المقابل في المحتوى الرئيسي (تمرير متزامن)
- إضافة رابط قابل للنسخ لكل عنوان (بالطبع، إذا كنت ترغب في ذلك)
- دعم RTL (من اليمين إلى اليسار)
- مخطط الألوان يعتمد على مخطط الألوان الذي تستخدمه حاليًا
كيف يعمل
بشكل افتراضي، سيتم تمييز عناوين المحتوى الحالي كـ toc (عبر زر المنشئ لإكمال العملية المذكورة أعلاه)، وإذا تم تمييز موضوعك الحالي، فسيتم تحويله أيضًا إلى toc (هذا يتعلق بتسلسل هرمي للعناوين). سيتم تحويل جميع عناوين المحتوى إلى TOC - هذا يعني أن إعدادات عنوان ملف MD الخاص بك يجب أن تكون صحيحة، وإذا كان مستوى عنوانك خاطئًا، فستكون نتيجة التحويل خاطئة.
# heading 1
## heading 2
### heading 3
#### heading 4
##### heading 5
###### heading 6
يمكنك تعديل المستويات حسب الرغبة، ولكن يجب عليك التأكد من صحة المستويات.
# heading 2
## heading 3
## heading 3
### heading 4
## heading 3
# heading 2
etc...
لضمان عمل الروابط بشكل صحيح، يجب أن يكون لجميع العناوين سمة Id.
سيقوم هذا المكون تلقائيًا بالتحقق من سمة Id للعناوين. إذا كان العنوان موجودًا، فسيعمل المكون بشكل أكثر فعالية. كما أن Id مفيد أيضًا عند إنشاء مواضيع يدويًا.
إذا لم يكن لعنوانك سمة Id، فسيقوم هذا المكون تلقائيًا بإنشاء Id بناءً على محتوى العنوان (سيتم تجاهل الأحرف غير الضرورية تلقائيًا).
عند اكتمال كل ما سبق، ستنشئ قائمة المحتويات رابطًا إلى المحتوى الرئيسي بناءً على العناوين، كما هو موضح أدناه:
![]()
الإعدادات
يحتوي هذا المكون على إعداد واحد فقط، وهو أيقونة قائمة المحتويات (سيتم استخدام هذه الصورة في الإعدادات اللاحقة، ولا يوصي المطورون بتغيير هذه الأيقونة).
الترجمة والتعريب
هذا المكون يتطلب القليل جدًا من الترجمة، فقط الحقول الثلاثة التالية تحتاج إلى ترجمة.
table_of_contents: "table of contents (قائمة المحتويات)"
سيتم عرض هذا عند فتح قائمة المحتويات على الأجهزة المحمولة.
insert_table_of_contents: "Insert table of contents (إدراج قائمة المحتويات)"
سيتم عرضه عند إدراج قائمة المحتويات في صفحة الموضوع.
topic_will_contain_a_table_of_contents: "This topic will contain a table of contents (سيحتوي هذا الموضوع على قائمة محتويات)"
سيتم عرضه في صفحة المعاينة عند تحرير محتوى الموضوع وعرضه في المعاينة على اليمين.
كيفية إنشاء عنوان
- يجب أن يتم إنشاء عناوين المحتوى باستخدام بناء الجملة الصحيح عند إنشائها.
- انقر على خيار القائمة في الصفحة (يتم عرضه فقط للمواضيع والمنشورات العادية، ولن يتم عرضه إذا كنت ترد أو ترسل رسائل خاصة).
- إدراج في صفحة الموضوع.
ماذا يحدث مع عنصر واجهة المستخدم لتقدم القراءة عند استخدام قائمة المحتويات؟
قد تعلم أنه لا يمكننا عرض تقدم القراءة وقائمة المحتويات في نفس الوقت على الصفحة.
الحل الرسمي هو أنه إذا كانت قائمة المحتويات موجودة عند قراءة المنشور الأول، فسيتم عرض قائمة المحتويات فقط على الصفحة، وسيتم تجاهل عنصر واجهة المستخدم لتقدم القراءة ولن يتم عرضه.
عندما تتجاوز قراءتك المنشور الأول، لن يتم عرض قائمة المحتويات، وبدلاً من ذلك، سيتم عرض شريط تقدم القراءة للمحتوى بأكمله.
ببساطة، قائمة المحتويات صالحة فقط للمنشور الأول، وستستخدم المنشورات اللاحقة شريط تقدم القراءة.
العرض على الأجهزة المحمولة وسطح المكتب هو نفسه.
ما هي المشاكل التي قد تحدث عند استخدام هذا المكون؟
وفقًا للمؤلف والمطورين، لم يتم مواجهة أي مشاكل حتى الآن عند استخدام هذا المكون.
يتم عرض جميع المحتويات في جانب العميل، وبعبارة أخرى، يتم الانتهاء من جميع المحتويات في الواجهة الأمامية، لذلك لم يتأثر توفير بيانات الواجهة الخلفية بأي شكل من الأشكال.
عند تعطيل هذا المكون، ستعود جميع المحتويات إلى حالتها الأصلية.
قيود الاستخدام
يستخدم هذا المكون تخطيط السمة القياسي.
إذا كان التخطيط الذي تستخدمه قد قام بتعديل استخدام العناوين، فلن يعمل مكون قائمة المحتويات هذا بشكل طبيعي.
على سبيل المثال، في حالة استخدام سمة Vincent، لا يمكن لهذا المكون العمل بشكل طبيعي.
بالنسبة لدعم بعض السمات الشائعة، فهذا هو الاعتبار التالي للمطورين والعمل العكسي.
المطورون
يعتمد المؤلف الرسمي على مكتبة Greg Franko’s tocify.js.
ولكن، لسوء الحظ، لم يتم تحديث هذه المكتبة منذ فترة طويلة، لذلك قام المؤلف بإزالة الكثير من المحتوى غير الضروري والميزات والرموز غير الضرورية من محتوى المكتبة ودمج الميزات ذات الصلة في Discourse.
حجم المكون حوالي 4 كيلوبايت (عند استخدام ضغط gzip).
يشكر المؤلف أيضًا @erlend_sh على اقتراحاته الممتازة و @david على المساعدة في الترجمة.
ما يحتاج إلى تحسين (TODO)
- عرض قائمة المحتويات في الوقت الفعلي أثناء التحرير (قد يستهلك هذا الكثير من الموارد)
- دعم السمات الشائعة لعرض قائمة المحتويات
- نسخ رابط عنوان النقر تلقائيًا إلى الحافظة.
بخصوص إصدار هذا الإصدار، يقول المؤلف: هذا إصدار مبكر نسبيًا، إذا كانت لديك أي مشاكل أو اقتراحات لهذا المكون، فنحن نرحب بالاتصال بالمؤلف مباشرة.
للحصول على معلومات ومناقشات رسمية حول هذا المكون، يرجى الرجوع إلى الصفحة: DiscoTOC - automatic table of contents.
مساعدة تقنية (باللغة الصينية)
إذا كانت لديك أي أسئلة أخرى أو كنت بحاجة إلى مساعدة، يرجى زيارة موقعنا على الويب (باللغة الصينية): iSharkFly - 飞鲨




