DiscoTOC - جدول المحتويات التلقائي

:discourse2: ملخص سيسمح لك DiscoTOC بإنشاء جدول محتويات تفاعلي لمواضيعك بنقرة واحدة!
:eyeglasses: معاينة معاينة على منشئ مواضيع Discourse
:hammer_and_wrench: رابط المستودع https://github.com/discourse/DiscoTOC
:open_book: جديد على مواضيع Discourse؟ دليل المبتدئين لاستخدام مواضيع Discourse

تثبيت مكون الموضوع هذا

عينات

سطح المكتب

الجوال

الميزات

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

  • يقوم تلقائيًا بإنشاء جدول المحتويات بالكامل عبر زر في قائمة الترس للمحرر

  • سيظل جدول المحتويات دائمًا على الشاشة - يتحرك مع المحتوى مثل أداة تقدم الموضوع

  • أثناء التمرير فوق الأقسام في الموضوع، سيتم تعيين العنصر النشط في جدول المحتويات إلى نشط (تظليل أزرق)

  • يضيف سمات معرف (id) للعناوين (يمكنك الارتباط بقسم معين من موضوع/منشور آخر)

  • عند النقر على أي رابط في جدول المحتويات، سيُطلب من المتصفح التنقل إلى القسم ذي الصلة (تمرير سلس)

  • يضيف رابطًا قابلًا للنسخ بجانب كل عنوان (إذا كنت تريد الارتباط به)

  • دعم الاتجاه من اليمين إلى اليسار (RTL)

  • الألوان مبنية على لوحة الألوان النشطة الحالية لديك

كيف يعمل؟

باختصار، يبحث عن العناوين في المواضيع التي تم تحديدها لتتضمن جدول محتويات (عبر زر المحرر)، وإذا تبين أن الموضوع الحالي محدد، فإنه يأخذ جميع العناوين ويضعها في جدول المحتويات (متداخلة حسب ترتيب مستويات العناوين) - وهذا يعني أن تنسيق Markdown الخاص بك يجب أن يكون صحيحًا نحويًا.

# عنوان 1
## عنوان 2
### عنوان 3
#### عنوان 4
##### عنوان 5
###### عنوان 6

أنت حر في التراجع والعودة بين مستويات العناوين، لكن يجب أن يكون الترتيب صحيحًا

# عنوان 2 
## عنوان 3
## عنوان 3
### عنوان 4
## عنوان 3
# عنوان 2

إلخ...

لكي تعمل الروابط في جدول المحتويات، يجب أن تحتوي العناوين على سمات معرف (id). سيتحقق المكون مما إذا كانت العناوين تحتوي بالفعل على معرفات، وإذا كانت كذلك، فسيتم احترامها. هذا مفيد إذا قمت بإنشاء جدول محتويات يدويًا في أي وقت.

إذا لم تكن العناوين تحتوي على معرفات، فسيتم إنشاء معرف لكل عنوان بناءً على نصه (يتم إزالة الأحرف غير المرغوب فيها)

بمجرد الانتهاء من كل ذلك، سيتم أيضًا إضافة رابط بجانب كل زر يربط مباشرةً إلى ذلك القسم:

الإعدادات

الاسم الوصف
مستوى الثقة الأدنى لإنشاء جدول المحتويات مستوى الثقة الأدنى الذي يجب أن يتمتع به المستخدم لرؤية زر جدول المحتويات في المحرر
نص جدول محتويات المحرر النص الذي يظهر في الجزء العلوي من لوحة المعاينة للمحرر للإشارة إلى أن الموضوع سيحتوي على جدول محتويات
فئات جدول المحتويات التلقائية تمكين جدول المحتويات تلقائيًا في المواضيع في هذه الفئات
وسوم جدول المحتويات التلقائية تمكين جدول المحتويات تلقائيًا في المواضيع التي تحتوي على هذه الوسوم
الحد الأدنى للعناوين في جدول المحتويات الحد الأدنى لعدد العناوين في موضوع لإظهار جدول المحتويات

الترجمات

الترجمة الافتراضي
table_of_contents جدول المحتويات
insert_table_of_contents إدراج جدول المحتويات
jump_bottom القفز إلى النهاية
toggle_toc.show_timeline الجدول الزمني
toggle_toc.show_toc المحتويات

يأتي الموضوع مع ثلاث سلاسل يمكنك ترجمتها أو تغييرها.

table_of_contents: "جدول المحتويات"

يُستخدم هذا للزر الذي يفتح جدول المحتويات على الجوال

insert_table_of_contents: "إدراج جدول المحتويات"

يُستخدم هذا كنص لزر جدول المحتويات في قائمة الترس للمحرر

topic_will_contain_a_table_of_contents: "سيحتوي هذا الموضوع على جدول محتويات"

هذا هو النص الذي يظهر في معاينة المحرر للإشارة إلى أنه سيتم إنشاء جدول محتويات للموضوع

كيف أنشئ جدول محتويات؟

  1. اكتب موضوعًا بعناوين صحيحة نحويًا
  2. انقر على زر جدول المحتويات في قائمة الترس (يظهر فقط عند إنشاء موضوع عادي - يتم تجاهل الردود والرسائل الخاصة)
  3. استمتع بالنتيجة.

ماذا يحدث لأداة تقدم الموضوع عندما يحتوي الموضوع على جدول محتويات؟

كما يمكنك أن تتخيل على الأرجح، لا يوجد مساحة لعرض كليهما في نفس الوقت، لذا فإن طريقة عمل هذا المكون هي كالتالي

في موضوع يحتوي على جدول محتويات، يتم إخفاء أداة تقدم الموضوع بينما يكون المنشور الأول على الشاشة، وتظهر لك بدلاً من ذلك جدول المحتويات.

بمجرد التمرير بعد المنشور الأول، لن يتحرك جدول المحتويات معك وسيتم عرض تقدم الموضوع بدلاً من ذلك أثناء قراءة أي ردود.

إذًا، تحصل المنشورات الأولى على جدول المحتويات، بينما تحصل المنشورات اللاحقة على أداة تقدم الموضوع العادية.

يحدث هذا على كل من سطح المكتب والجوال.

هل هناك أي سلبيات لاستخدام هذا المكون؟

لا شيء أعرفه، تتم جميع التغييرات على جانب العميل. لذا يمكنك بسهولة إزالة المكون وستعود منشوراتك إلى حالتها قبل تثبيت المكون.

القيود

يفترض هذا المكون تخطيط الموضوع القياسي. وبالتالي، لن يعمل مع المواضيع التي تعدل هذا التخطيط مثل موضوع Vincent. سيأتي دعم المواضيع الشائعة التي تعدل التخطيط في مرحلة لاحقة على شكل إعدادات المكون.

الائتمان

بدأت بمكتبة tocify.js لـ Greg Franko. ومع ذلك، يبدو أنها لم يتم تحديثها منذ فترة، لذا فإن هذا هو في الأساس نسخة مشتقة صلبة تزيل العديد من الميزات غير الضرورية، وتدمج وتُصمم الباقي لـ Discourse.

لذلك، لا توجد طلبات خارجية والحجم الإجمالي هو حوالي 4 كيلو بايت مضغوط بـ gzip.

شكرًا كبيرًا إلى @erlend_sh على الكثير من التعليقات القيمة وإلى @david على مساعدته في الترجمات.

:discourse2: مُستضاف بواسطةنا؟ مكونات المواضيع متاحة للاستخدام في خطط Pro وBusiness وEnterprise الخاصة بنا.

182 إعجابًا
Automatic Table of Contents generation
Creative Uses of Discourse
Wiki improvement – Split content into multiple sections?
:cn: DiscoTOC 自动内容表格
Big Header - Little Header
How To Add Marker To Table Of Contents Feature?
What are the different ways to customize content inside a post (custom attributes and such)
Tagged topic progress bar - feasible or not?
Reader Mode
How can i show a floating sticky 300x250 Adsense Ad on right side bar of topic page above the fold?
How do you create a table of content like this one?
Timeline with labelled step by step sections - how is this achieved?
How to get topic navigation menu
Is anyone working on a Discourse Wiki?
Traditional multi level hierarchy vs flat discourse hierarchy
Theme Components - Can Discourse hosted sites install them?
How to add table of content sidebar beside a topic?
How do I add a table of contents sidebar to a topic?
Cannot deep link to anchor in text
How can I compare arbitrary revisions of a post?
Understanding Discourse for new users
Problem with DiscoTOC: TypeError: _offsetCalculator.headerOffset is not a function
How to create an In-app Knowledge Base with Discourse Docs?
OP Contents on Progress Bar
How to get topic sidebar
Customizing your site with existing theme components
Link to headers (anchor links)
Outline Enable
What is essential content for a new community?
Tools for creating image-heavy articles
Adding DiscoTOC to Published Pages
Customize Your Site Branding
Discourse Doc Categories
Gif icon not displaying and showing error
Must have plugins and components for Discourse?
I created a bookmarklet to create the table of content for forum posts
Could a List of Recommended Topics Be Added to the Top Menu?
Living with corrupted SVGs for almost a year. Need Help!
Something recently changed, can't increase `--topic-body-width`
How to enable side navigation?
Displaying "full topic" text on category page + access to subcategory from menu bar
Improve iPad screen real estate
Missing anchor links in certain TOC topics?
DiscoTOC not showing in composer after latest component update
Missing anchor links in certain TOC topics?
How to create a documentation theme used by discourse
Where's Jump to end?
Handling anchors in posts created with markdown
Reader Mode
Hidden Timeline button
Horizon Theme
Collections
Bulk Export of Raw Post Sources with Markup
AI summary in topic header
Contents button and Timeline button floating unexpectedly
:cn: Discourse Post Formatting Guide 加点格式,让帖子多姿多彩
Wiki table of contents on pro plan
Auto-Linkify Words
Missing strings (DiscoTOC)
?page=n URLs have high CLS hence bad SEO
Require users to "Reply as Linked Topic"
Links not working
Using Posts as a Wiki?
Using Posts as a Wiki?
Is anyone working on a Discourse Wiki?
Using Posts as a Wiki?
Using Posts as a Wiki?
DiscoTOC & Brand Header - using together
Docs: Add link to top menu
Layouts Plugin
More than two levels of [details]
Category page with fixed organization of topics
Blog Post Styling
Inlink the topics within the same article
Navigating to local URL fragment doesn't modify browser history
Relating to Profile Picture Scroll Functionality
Copy pasting nested lists from Word into a post
Need to include PGN (chess game notation) in a post
How can I get a table of contents for my docs?
Linking to a heading within a post
Topic list on the right side
Set up Slack notifications using the discourse-chat-integration plugin
Wrong title in the history popup (firefox)
Possible to insert post in a topic
I created a bookmarklet to create the table of content for forum posts

تم تقسيم 4 مشاركات إلى موضوع جديد: كيفية نقل جدول المحتويات إلى الجانب الأيسر من المنشور؟

لا أعرف كيف يتم تنفيذ هذه المكونة ولا الكثير عن هيكل الواجهة الأمامية لـ Discourse، لذا يمكنني فقط تقديم تخمين.

ألا يمكن عرض شريط التقدم فقط أ) إذا كان هناك أكثر من مشاركة واحدة في الموضوع و ب) تعديل بدايته لتبدأ من المشاركة الثانية (بدلاً من الثالثة)، ولكن أيضًا ج) إضافة هامش سفلي/علوي مريح لأحد العنصرين للتأكد من أن الآخر يظل بعيدًا بما فيه الكفاية (مثل 1vh) حتى لا يبدو غريبًا؟

بعبارة أخرى، بدلاً من استخدام المشاركة الثانية بأكملها كفجوة، استخدم CSS للسماح ببعض المساحة بينهما (إذا كان هناك أكثر من مشاركة واحدة).

مرة أخرى، قد لا يكون لهذا أي معنى على الإطلاق لأنني لا أعرف الكثير عن الطريقة التي يعمل بها هذا في الوقت الحالي.

3 إعجابات

مرحباً! لقد قمنا مؤخراً بتثبيت DiscoTOC لمنتدياتنا وكنا نتساءل عما إذا كان من الممكن جعل المكون يقرأ النص البديل (alt text) في الصور؟ لقد استخدمنا صوراً لبعض رؤوس ملاحظات الإصدار…

على هذا النحو:
Performance and Stability

وللأسف، لا يبدو أن نظام جدول المحتويات (TOC) قادر على تحليل صورة كرأس، مما يؤدي إلى إنشاء إدخال فارغ في القائمة وإنشاء رابط يأخذك إلى صفحة فارغة. هل هناك أي حل بديل لهذا بخلاف “عدم استخدام الصور”؟ شكراً جزيلاً! نحن نحب النظام بخلاف ذلك.

إعجاب واحد (1)

تخميني هو أن الحل هو عدم استخدام الصور كعناوين، ولكن ربما ستكون هناك طريقة لجعلها تعمل عن طريق إضافة بعض الأكواد إلى موقعك تتصل بكود DiscoTOC. ما إذا كان الأمر يستحق البحث في ذلك سيعتمد على مدى أهمية استخدام الصور في عناوين المشاركة بالنسبة لك.

3 إعجابات

لقد كنا نستخدم الصور كعناوين في ملاحظات الإصدار الخاصة بنا باستمرار لفترة طويلة، وهي جزء من علامتنا التجارية وعرضنا التقديمي؛ ليس فقط في المنتديات، ولكن على ستيم وما شابه ذلك أيضًا. نود أن تكون لدينا القدرة على الاستمرار في استخدام الصور كعناوين أثناء استخدام DiscoTOC للحفاظ على الاتساق.

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

إعجاب واحد (1)

تعمل وظيفة مرساة العنوان (heading anchor) في هذا المكون على التعارض قليلاً مع وظيفة روابط العنوان التلقائية (Automatic header links) المضافة في 2.7.0beta6، حيث تحصل العناوين على أيقونتين عند التمرير فوقها، واحدة من Discourse والأخرى من DiscoTOC. هل هناك طريقة لتجاوز هذا؟

إعجاب واحد (1)

مرحباً،

يمكنك إخفاء مرساة Automatic header links باستخدام

.anchor {
  display: none;
}

مرحباً dodesz،

لقد جعلت عرض المنشور أكبر بكثير من الافتراضي، وبعد تثبيت هذا المكون يبدو شكله خاطئًا، هل يمكنك إخباري بكيفية إصلاح هذه المشكلة؟

:heart: شكراً!

Selection_839

إعجاب واحد (1)

على منتدى يعمل بإصدار Discourse 2.8.0.beta4 (90232af778)، يؤدي تضمين مكون DiscoTOC إلى ظهور رسالة خطأ:

oops

تم تنشيط المكون سابقًا وأثار مشكلة مع إصدار Discourse المثبت مسبقًا أيضًا، على الرغم من أنني لا أستطيع تحديد الإصدار الذي كان عليه.

هل يمكنك العثور على أي رسائل خطأ متعلقة بالمشكلة في سجلات أخطاء موقعك؟

رسالة الخطأ تلك هي خطأ في الواجهة الخلفية (backend)، بينما DiscoTOC هو مكون سمة للواجهة الأمامية (front-end)، لذا من الصعب أن يكونا مرتبطين. هل لديك أي إضافات (plugins) مثبتة؟

إعجاب واحد (1)

للأسف، لم أتمكن من العثور على أي شيء مفيد في /logs.

لدي، إليك المقتطف ذي الصلة من app.yml:

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-openid-connect.git
          - git clone https://github.com/discourse/discourse-checklist.git
          - git clone https://github.com/discourse/discourse-push-notifications.git
          - git clone https://github.com/discourse/discourse-characters-required.git
          - git clone https://github.com/angusmcleod/discourse-news.git
          - git clone https://github.com/discourse/discourse-data-explorer.git
          - git clone https://github.com/DNOeV/discourse-watch-category.git
          - git clone https://github.com/discourse/discourse-footnote.git
          - git clone https://github.com/discourse/discourse-knowledge-explorer.git
إعجاب واحد (1)

عندما يكون العنوان داخل اقتباس، لا يظهر العنوان في جدول المحتويات. هل يمكن تغيير هذا السلوك؟

هذا العنوان لن يظهر في جدول المحتويات

محتوى مقتبس

هذا العنوان يظهر في جدول المحتويات

محتوى مقتبس

لا أعرف كيف من المخطط أن يعمل، ولكن عادةً لا، لأنه جزء من الاقتباس، وليس عنوانًا لذلك النص.

إعجابَين (2)

هل يمكنك المحاولة باستخدام وسم HTML <blockquote> بدلاً من ذلك؟ سيسمح ذلك للعنوان # بأن يكون في بداية السطر.

مثال:

<blockquote>

### عنوان المرساة
 
</blockquote>

عنوان المرساة

لم أجربه في جدول المحتويات (TOC)، ولكنه يبدو أنه يعمل مع العناوين ذاتية الربط في منشور عادي.

لماذا تريد أن تظهر العناوين داخل علامات الاقتباس في جدول المحتويات؟ ما هي حالة الاستخدام الخاصة بك؟

شكرًا لك على الفكرة. لكنها لم تنجح معي.

إليك مثال على متى أستخدم الاقتباسات لتنظيم المحتوى بصريًا بدءًا من منطقة المشكلة: العمر

3 إعجابات

لماذا تستخدم الاقتباس بهذه الطريقة؟ إخبار المصدر يكفي. بالإضافة إلى أن هذا خطأ نحويًا، حتى في اللغة الإنجليزية.

هل هذه مشكلة (bug) أم مجرد مستخدم آخر، ولكن… كيف يجب أن أغلق جدول المحتويات (TOC)؟ كنت أبحث عن بعض التعليمات الأساسية حول كيفية استخدام الرسائل الخاصة من قبل المستخدم النهائي وبالطبع ذهبت إلى وثيقة المستخدمين الجدد وفتحت جدول المحتويات لمعرفة ما إذا كان هناك أي معلومات.

كنت أستخدم جهاز iPad وDiscourseHub.

لقد حصلت على هذا:

kuva

جدول المحتويات جيد تمامًا. لكنه يتداخل مع النص ولم أتمكن من إخفائه مرة أخرى. فما الخطأ الذي ارتكبته بحق الجحيم، أو لم أرتكب أي خطأ على الإطلاق :pleading_face: