DiscoTOC - فهرس محتويات تلقائي

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

تثبيت مكون السمة هذا

عينات

سطح المكتب

جوال

الميزات

toc = فهرس المحتويات

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

  • سيظهر الفهرس دائمًا على الشاشة - يتحرك مع المحتوى مثل عنصر تقدم الموضوع

  • أثناء التمرير عبر الأقسام في الموضوع، سيتم تعيين العنصر النشط في فهرس المحتويات ليكون نشطًا (تمييز أزرق)

  • كل إدخال في الفهرس يربط إلى نقطة الارتساء الخاصة بالترويسة، لذا يمكنك أيضًا ربط قسم معين من موضوع آخر أو منشور

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

  • في المواضيع التي تحتوي على ردود، زر المحتويات / الجدول الزمني يسمح للقراء بالتبديل بين الفهرس والجدول الزمني العادي للموضوع. يتم حفظ الاختيار في المتصفح

  • يعمل مع إضافة Discourse Docs

  • دعم اختياري لفهارس المحتويات في الردود، وليس فقط في المنشور الأول

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

كيف يعمل؟

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

# الترويسة 1
## الترويسة 2
### الترويسة 3
#### الترويسة 4
##### الترويسة 5

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

# الترويسة 2
## الترويسة 3
## الترويسة 3
### الترويسة 4
## الترويسة 3
# الترويسة 2

إلخ...

بعض الأشياء التي يجب معرفتها حول الترويسات المتوافقة

  • يتم تضمين h1 إلى h5. h6 غير مدرج
  • يتم تجاهل الترويسات داخل الاقتباسات، لذا لن تلوث الاقتباسات الفهرس
  • يظهر الفهرس فقط إذا كان المنشور يحتوي على عدد من الترويسات يساوي على الأقل إعداد الحد الأدنى لترويسات الفهرس (3 افتراضيًا)

كيف تعمل الروابط في الفهرس؟

تحتوي كل ترويسة في منشور مطبوخ على نقطة ارتساء على شكل p-<معرف المنشور>-<معرّف الترويسة>-<الرقم> — وهي الهدف خلف ترويسة a. يربط DiscoTOC إلى نقاط الارتساء هذه بدلاً من اختراع نقاط خاصة به.

لأن نقاط الارتساء هذه تتضمن موضع الترويسة في المنشور، فإنها تتغير إذا أعدت ترتيب الترويسات أو غيرت عناوينها. إذا كنت تربط إلى أقسام من مكان آخر، يمكنك إضافة نقاط ارتساء مسماة مستقرة فوق الترويسة:

<div><a name="my-section"></a></div>
## قسم الخاص بي

ثم اربط إلى /t/your-topic-slug/1234#my-section. يسمح Discourse بـ <a name="..."> في المنشورات. ستستخدم إدخالات DiscoTOC الخاصة بهما لا تزال نقاط الارتساء الأساسية للترويسات، لكن نقاطك ستستمر في العمل بغض النظر عن التعديلات.

الإعدادات

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

نص فهرس المحرر هو ما يظهر في معاينة المحرر للإشارة إلى أن الفهرس سيتم إنشاؤه:

الترجمات

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

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

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

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

toggle_toc.show_toc: "المحتويات"
toggle_toc.show_timeline: "الجدول الزمني"

هذه تسميات الزر الذي يبدل بين فهرس المحتويات والجدول الزمني للموضوع

كيف أنشئ فهرسًا؟

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

ماذا يحدث لعنصر تقدم الموضوع عندما يحتوي الموضوع على فهرس؟

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

في المواضيع التي تحتوي على أكثر من منشور واحد، زر المحتويات / الجدول الزمني يسمح للقراء بالتبديل بين الاثنين، ويتم حفظ التفضيل في متصفحاتهم.

على الشاشات الضيقة، يفتح الفهرس كتراكب عبر زر في منطقة تقدم الموضوع.

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

تحدث معظم الأشياء على جانب العميل، لذا يمكنك إزالة المكون في أي وقت وستظهر منشوراتك كما كانت من قبل. الشيء الوحيد الذي يمس محتواك هو زر المحرر: يلف المنشور في علامة <div data-theme-toc="true">، وهو كيف يعرف المكون أن المنشور يجب أن يحتوي على فهرس. إذا قمت بإلغاء تثبيت المكون، تبقى هذه العلامة في المنشور ولكن ليس لها تأثير مرئي.

القيود

لا يتم تضمين ترويسات h6 والترويسات داخل الاقتباسات في الفهرس.

الاعتماد

بدأ هذا كشوكة قوية لمكتبة Greg Franko tocify.js، وتم إعادة كتابته منذ ذلك الحين كمكونات Ember أصلية. لا توجد تبعيات خارجية أو طلبات.

شكر كبير لـ @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 自动内容表格
Traditional multi level hierarchy vs flat discourse hierarchy
What are the different ways to customize content inside a post (custom attributes and such)
Is anyone working on a Discourse Wiki?
Tagged topic progress bar - feasible or not?
Big Header - Little Header
Timeline with labelled step by step sections - how is this achieved?
How to get topic navigation menu
Theme Components - Can Discourse hosted sites install them?
Reader Mode
How To Add Marker To Table Of Contents Feature?
How do you create a table of content like this one?
How can i show a floating sticky 300x250 Adsense Ad on right side bar of topic page above the fold?
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
Layouts Plugin
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?
?page=n URLs have high CLS hence bad SEO
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
Living with corrupted SVGs for almost a year. Need Help!
Wiki table of contents on pro plan
Auto-Linkify Words
Missing strings (DiscoTOC)
Copy pasting nested lists from Word into a post
:cn: Discourse Post Formatting Guide 加点格式,让帖子多姿多彩
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
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
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
How to add table of content sidebar beside a topic?

تم تقسيم 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: