DiscoTOC - automatisches Inhaltsverzeichnis

:discourse2: Zusammenfassung DiscoTOC ermöglicht es Ihnen, mit einem Klick ein interaktives Inhaltsverzeichnis für Ihre Themen zu erstellen!
:eyeglasses: Vorschau Vorschau im Discourse Theme Creator
:hammer_and_wrench: Repository-Link https://github.com/discourse/DiscoTOC
:open_book: Neu bei Discourse-Themen? Anfängerleitfaden zur Verwendung von Discourse-Themen

Dieses Theme-Komponente installieren

Beispiele

Desktop

Mobile

Funktionen

toc = Inhaltsverzeichnis

  • Erstellt automatisch das gesamte Inhaltsverzeichnis über einen Button im Zahnradmenü des Editors

  • Das Inhaltsverzeichnis bleibt immer auf dem Bildschirm – es scrollt mit dem Inhalt wie das Widget für den Themenfortschritt

  • Wenn Sie durch Abschnitte im Thema scrollen, wird das aktive Element im Inhaltsverzeichnis aktiviert (blaue Hervorhebung)

  • Fügt ID-Attribute zu Überschriften hinzu (Sie können von einem anderen Thema/Beitrag auf einen bestimmten Abschnitt verlinken)

  • Ein Klick auf einen Link im Inhaltsverzeichnis weist den Browser an, zum relevanten Abschnitt zu navigieren (sanftes Scrollen)

  • Fügt neben jeder Überschrift einen kopierbaren Link hinzu (falls Sie darauf verlinken möchten)

  • RTL-Unterstützung

  • Die Farben basieren auf Ihrem aktuellen aktiven Farbpaletten-Design

Wie funktioniert es?

Kurz gesagt, sucht es nach Überschriften in Themen, die so markiert sind, dass sie ein Inhaltsverzeichnis haben (über den Editor-Button), und wenn das aktuelle Thema markiert ist, nimmt es alle Überschriften und fügt sie in das Inhaltsverzeichnis ein (verschachtelt nach Überschriftenleveln) – das bedeutet, dass Ihr Markdown syntaktisch korrekt sein muss.

# Überschrift 1
## Überschrift 2
### Überschrift 3
#### Überschrift 4
##### Überschrift 5
###### Überschrift 6

Sie können frei zwischen den Überschriftenleveln hin und her wechseln, aber die Reihenfolge muss korrekt sein.

# Überschrift 2 
## Überschrift 3
## Überschrift 3
### Überschrift 4
## Überschrift 3
# Überschrift 2

usw...

Damit die Links im Inhaltsverzeichnis funktionieren, müssen Überschriften ID-Attribute haben. Die Komponente prüft, ob die Überschriften bereits IDs haben, und wenn ja, werden diese respektiert. Das ist praktisch, falls Sie jemals manuell ein Inhaltsverzeichnis erstellt haben.

Falls die Überschriften keine IDs haben, generiert die Komponente eine ID für jede Überschrift basierend auf ihrem Text (unerwünschte Zeichen werden entfernt).

Sobald all das erledigt ist, wird außerdem ein Link neben jeder Überschrift hinzugefügt, der direkt zu diesem Abschnitt führt:

Einstellungen

Name Beschreibung
Mindestvertrauenslevel zum Erstellen eines TOC Das Mindestvertrauenslevel, das ein Benutzer haben muss, um den TOC-Button im Editor zu sehen
composer toc text Text, der oben im Vorschaufenster des Editors erscheint, um anzuzeigen, dass das Thema ein Inhaltsverzeichnis haben wird
auto TOC categories TOC automatisch in diesen Kategorien für Themen aktivieren
auto TOC tags TOC automatisch für Themen mit diesen Tags aktivieren
TOC min heading Mindestanzahl von Überschriften in einem Thema, damit das Inhaltsverzeichnis angezeigt wird

Übersetzungen

Übersetzung Standard
table_of_contents Inhaltsverzeichnis
insert_table_of_contents Inhaltsverzeichnis einfügen
jump_bottom Zum Ende springen
toggle_toc.show_timeline Zeitleiste
toggle_toc.show_toc Inhalt

Das Theme enthält drei Zeichenfolgen, die Sie übersetzen oder ändern können.

table_of_contents: "Inhaltsverzeichnis"

Dies wird für den Button verwendet, der das Inhaltsverzeichnis auf mobilen Geräten öffnet.

insert_table_of_contents: "Inhaltsverzeichnis einfügen"

Dies wird als Text für den TOC-Button im Zahnradmenü des Editors verwendet.

topic_will_contain_a_table_of_contents: "Dieses Thema wird ein Inhaltsverzeichnis enthalten"

Dies ist der Text, der in der Editor-Vorschau erscheint, um anzuzeigen, dass ein TOC für das Thema generiert wird.

Wie erstelle ich ein TOC?

  1. Schreiben Sie ein Thema mit syntaktisch korrekten Überschriften.
  2. Klicken Sie im Zahnradmenü auf den TOC-Button (erscheint nur beim Erstellen eines regulären Themas – Antworten und PMs werden ignoriert).
  3. Profitieren Sie.

Was passiert mit dem Widget für den Themenfortschritt, wenn ein Thema ein TOC hat?

Wie Sie wahrscheinlich erraten können, gibt es keinen Platz, um beides gleichzeitig anzuzeigen. Daher funktioniert diese Komponente wie folgt:

In einem Thema mit TOC wird das Widget für den Themenfortschritt ausgeblendet, solange der erste Beitrag auf dem Bildschirm ist, und stattdessen sehen Sie das TOC.

Sobald Sie über den ersten Beitrag hinaus scrollen, scrollt das TOC nicht mehr mit Ihnen mit, und stattdessen wird das Widget für den Themenfortschritt angezeigt, während Sie Antworten lesen.

Also erhalten erste Beiträge das TOC, und nachfolgende Beiträge das reguläre Widget für den Themenfortschritt.

Dies funktioniert sowohl auf Desktop als auch auf mobilen Geräten.

Gibt es Nachteile bei der Verwendung dieser Komponente?

Mir ist nichts bekannt, alle Änderungen erfolgen auf der Client-Seite. Sie können die Komponente also einfach entfernen, und Ihre Beiträge kehren zum Zustand zurück, wie sie vor der Installation waren.

Einschränkungen

Diese Komponente geht von dem standardmäßigen Themenlayout aus. Daher funktioniert sie nicht mit Themen, die dieses Layout ändern, wie beispielsweise das Vincent-Theme. Die Unterstützung für beliebte Themen, die das Layout ändern, wird später in Form von Komponenteneinstellungen hinzukommen.

Credits

Ich habe mit Greg Frankos tocify.js Bibliothek begonnen. Allerdings scheint es, als ob sie seit einiger Zeit nicht mehr aktualisiert wurde, daher ist dies im Wesentlichen ein Hard-Fork, der viele unnötige Funktionen entfernt, den Rest für Discourse integriert und gestaltet.

Es gibt also keine externen Anfragen, und die Gesamtgröße beträgt ~ 4kb gzip.

Großer Dank an @erlend_sh für viele wertvolle Rückmeldungen und an @david für seine Hilfe bei den Übersetzungen.

:discourse2: Von uns gehostet? Theme-Komponenten können auf unseren Pro-, Business- und Enterprise-Plänen verwendet werden.

182 „Gefällt mir“
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 Beiträge wurden in ein neues Thema aufgeteilt: Wie verschiebt man das Inhaltsverzeichnis auf die linke Seite des Beitrags?

Ich weiß nicht, wie diese Komponente implementiert ist oder viel über die Frontend-Struktur von Discourse, daher kann ich nur eine Vermutung anstellen.

Könnte der Fortschrittsbalken nur angezeigt werden a) wenn mehr als 1 Beitrag im Thema vorhanden ist und b) sein Start vom 2. Beitrag an (anstelle des 3.) angepasst werden, aber auch c) einen angemessenen oberen/unteren Abstand zu einem der beiden Elemente hinzugefügt werden, um sicherzustellen, dass der andere genügend Abstand hat (z. B. 1vh), damit es nicht seltsam aussieht?

Mit anderen Worten, anstatt den gesamten 2. Beitrag als Abstand zu verwenden, CSS verwenden, um etwas Platz dazwischen zu ermöglichen (falls mehr als 1 Beitrag vorhanden ist).

Nochmals, das ergibt möglicherweise überhaupt keinen Sinn, da ich nicht viel darüber weiß, wie das im Moment funktioniert.

3 „Gefällt mir“

Hallo! Wir haben kürzlich DiscoTOC für unsere Foren installiert und wollten wissen, ob es möglich ist, die Komponente dazu zu bringen, Alternativtexte in Bildern zu lesen? Wir haben Bilder für einige Patch-Hinweis-Überschriften verwendet…

so wie hier:
Performance and Stability

Und leider scheint das TOC-System ein Bild nicht als Überschrift analysieren zu können, wodurch ein leerer Eintrag in der Liste erstellt wird und ein Link, der zu einer leeren Seite führt. Gibt es dafür eine Umgehungsmöglichkeit, abgesehen davon, „keine Bilder zu verwenden“? Vielen Dank! Ansonsten lieben wir das System.

1 „Gefällt mir“

Ich vermute, die Lösung besteht darin, keine Bilder als Überschriften zu verwenden, aber möglicherweise gibt es eine Möglichkeit, dies durch das Hinzufügen von Code zu Ihrer Website zu erreichen, der sich in den DiscoTOC-Code einklinkt. Ob es sich lohnt, dies zu untersuchen, hängt davon ab, wie wichtig es Ihnen ist, Bilder in den Überschriften des Beitrags zu verwenden.

3 „Gefällt mir“

Wir verwenden seit geraumer Zeit konsistent Bilder als Überschriften in unseren Patch Notes, und dies ist Teil unseres Brandings und unserer Präsentation – nicht nur in den Foren, sondern auch auf Steam und ähnlichen Plattformen. Wir möchten die Möglichkeit haben, weiterhin Bilder als Überschriften zu verwenden, während wir DiscoTOC nutzen, um die Konsistenz zu wahren.

DiscoTOC war für andere Dinge großartig, wie zum Beispiel für eine AMA-Zusammenfassung, einen Megapost über unsere dedizierte Server-Launcher-Anwendung, Anleitungen für neue Spieler usw. Wir mögen das System sehr, würden uns aber über ein wenig zusätzliche Funktionalität für die Art und Weise, wie wir Patch Notes präsentieren, freuen.

1 „Gefällt mir“

Die Ankerfunktionalität der Überschriften in dieser Komponente kollidiert leicht mit der Funktionalität „Automatische Header-Linkshinzugefügt in 2.7.0beta6, da Überschriften beim Darüberfahren zwei Symbole erhalten, eines von Discourse und eines von DiscoTOC. Gibt es eine Möglichkeit, dies zu umgehen?

1 „Gefällt mir“

Hallo,

Sie können den Anker für Automatische Kopfzeilen-Links mit

.anchor {
  display: none;
}

ausblenden.

Hallo dodesz,

Ich habe die Beitragsbreite viel größer als die Standardbreite gemacht, und nach der Installation dieser Komponente sieht es etwas falsch aus. Könntest du mir sagen, wie ich dieses Problem beheben kann?

:heart: Danke!

Selection_839

1 „Gefällt mir“

Auf einem Forum, das Discourse 2.8.0.beta4 (90232af778) verwendet, führt die Einbindung der DiscoTOC-Komponente zu einer Fehlermeldung:

oops

Die Komponente war zuvor aktiviert und verursachte auch bei der zuvor installierten Discourse-Version ein Problem, obwohl ich nicht sagen kann, welche Version das war.

Können Sie irgendwelche Fehlermeldungen im Zusammenhang mit dem Problem in den Fehlerprotokollen Ihrer Website finden?

Diese Fehlermeldung ist ein Backend-Fehler, während DiscoTOC eine Front-End-Theme-Komponente ist, daher ist es unwahrscheinlich, dass sie zusammenhängen. Haben Sie Plugins installiert?

1 „Gefällt mir“

Leider konnte ich im /logs nichts Nützliches finden.

Ja, hier ist der relevante Auszug aus 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 „Gefällt mir“

Wenn sich eine Überschrift innerhalb eines Zitats befindet, wird die Überschrift nicht im Inhaltsverzeichnis (TOC) angezeigt. Könnte dieses Verhalten geändert werden?

Diese Überschrift wird nicht im TOC angezeigt

Zitierter Inhalt

Diese Überschrift wird im TOC angezeigt

Zitierter Inhalt

Ich weiß nicht, wie es funktionieren soll, aber normalerweise nicht, da es Teil des Zitats und keine Überschrift für diesen Text ist.

2 „Gefällt mir“

Könnten Sie stattdessen versuchen, das HTML <blockquote> zu verwenden? Das würde es ermöglichen, dass die Überschrift # am Anfang einer Zeile steht.

Bsp.:

<blockquote>

### Anker-Überschrift

</blockquote>

Anker-Überschrift

Ich habe es noch nicht in einem TOC (Inhaltsverzeichnis) ausprobiert, aber es scheint mit den automatisch generierten Anker-Überschriften in einem normalen Beitrag zu funktionieren.

Warum möchten Sie, dass Überschriften in Anführungszeichen im Inhaltsverzeichnis (TOC) angezeigt werden? Was ist Ihr Anwendungsfall?

Vielen Dank für die Idee. Es hat bei mir allerdings nicht funktioniert.

Hier ist ein Beispiel dafür, wann ich Zitate verwende, um Inhalte visuell zu strukturieren, die unter dem Themenbereich: Alter beginnen

3 „Gefällt mir“

Warum verwenden Sie diese Art von Zitaten? Die Angabe der Quelle reicht aus. Außerdem ist das grammatikalisch falsch, auch im Englischen.

Ist das ein Fehler oder nur ein anderer Benutzer, aber… wie soll ich das TOC (Inhaltsverzeichnis) schließen? Ich habe nach grundlegenden Anweisungen gesucht, wie ein Endbenutzer private Nachrichten verwenden sollte, und bin natürlich zur Dokumentation für neue Benutzer gegangen und habe das TOC geöffnet, um zu sehen, ob es dort Informationen gibt.

Ich habe ein iPad und DiscourseHub verwendet.

Ich erhielt dies:

kuva

Das TOC ist in Ordnung. Aber es überlappt Text und ich konnte es nicht wieder ausblenden. Was habe ich also falsch gemacht, oder gar nichts :pleading_face: