DiscoTOC - indice automatico

:discourse2: Riepilogo DiscoTOC ti permetterà di generare con un clic un indice interattivo per i tuoi argomenti!
:eyeglasses: Anteprima Anteprima su Discourse Theme Creator
:hammer_and_wrench: Link al repository https://github.com/discourse/DiscoTOC
:open_book: Prima volta con i temi di Discourse? Guida per principianti all’uso dei temi di Discourse

Installa questo componente del tema

Esempi

Desktop

Mobile

Funzionalità

toc = table of contents (indice)

  • Genera automaticamente l’intero indice tramite un pulsante nel menu a ingranaggio del compositore

  • L’indice rimarrà sempre visibile a schermo: scorre insieme al contenuto, come il widget di avanzamento dell’argomento

  • Mentre scorri oltre le sezioni dell’argomento, l’elemento attivo nell’indice verrà evidenziato (evidenziatura blu)

  • Ogni voce dell’indice linka all’ancora dell’intestazione, quindi puoi anche linkare a una sezione specifica da un altro argomento o post

  • Cliccando su qualsiasi link nell’indice, il browser navigerà verso la sezione rilevante (scroll fluido)

  • Negli argomenti con risposte, un pulsante Contenuti / Timeline permette ai lettori di passare tra l’indice e la timeline normale dell’argomento. La scelta viene memorizzata nel browser

  • Funziona con il plugin Discourse Docs

  • Supporto opzionale per indici nelle risposte, non solo nel primo post

  • Supporto RTL

Come funziona?

In sintesi, cerca le intestazioni negli argomenti contrassegnati per avere un indice (tramite il pulsante del compositore) e, se l’argomento corrente è contrassegnato, prende tutte le intestazioni e le inserisce nell’indice (annidate in ordine di livello di intestazione) - questo significa che il tuo markdown deve essere sintatticamente corretto.

# intestazione 1
## intestazione 2
### intestazione 3
#### intestazione 4
##### intestazione 5

Puoi tornare avanti e indietro tra i livelli di intestazione, ma l’ordine deve essere corretto

# intestazione 2
## intestazione 3
## intestazione 3
### intestazione 4
## intestazione 3
# intestazione 2

ecc...

Alcune cose da sapere sulle intestazioni compatibili

  • Sono incluse da h1 a h5. h6 non è incluso
  • Le intestazioni all’interno delle citazioni vengono ignorate, quindi le citazioni non inquinano l’indice
  • L’indice appare solo se il post ha almeno tante intestazioni quante impostate nella configurazione minimo intestazioni indice (3 di default)

Come funzionano i link nell’indice?

Ogni intestazione in un post elaborato riceve un’ancora nella forma p-<id post>-<slug intestazione>-<numero> — è il target dietro un’intestazione. DiscoTOC linka a queste ancore invece di crearne di proprie.

Poiché queste ancore includono la posizione dell’intestazione nel post, cambiano se riordini o rinomini le intestazioni. Se stai linkando a sezioni da altri posti, puoi aggiungere ancore nominate stabili sopra l’intestazione:

<div><a name="mia-sezione"></a></div>
## La mia sezione

Poi linka a /t/il-tuo-slug-argomento/1234#mia-sezione. Discourse permette <a name="..."> nei post. Le voci proprie di DiscoTOC continueranno a usare le ancore delle intestazioni core, ma le tue continueranno a funzionare indipendentemente dalle modifiche.

Impostazioni

Nome Descrizione
livello di fiducia minimo per creare indice Livello necessario per vedere il pulsante dell’indice nel compositore
testo indice compositore Testo che appare in alto nel compositore per indicare che l’argomento avrà un indice
categorie indice automatico Abilita automaticamente per le categorie
tag indice automatico Abilita automaticamente l’indice negli argomenti con questi tag
abilita indice per le risposte Permette l’indice nelle risposte. Gli indici delle risposte non sono influenzati dalle impostazioni tag indice automatico e categorie indice automatico e devono essere inseriti manualmente
minimo intestazioni indice Numero minimo di intestazioni in un argomento perché l’indice venga mostrato

testo indice compositore è ciò che appare nell’anteprima del compositore per indicare che verrà generato un indice:

Traduzioni

Traduzione Default
table_of_contents indice
insert_table_of_contents Inserisci indice
jump_bottom Vai alla fine
toggle_toc.show_timeline Timeline
toggle_toc.show_toc Contenuti
table_of_contents: "indice"

questo è usato per il pulsante che apre l’indice su mobile

insert_table_of_contents: "Inserisci indice"

questo è usato come testo per il pulsante dell’indice nel menu a ingranaggio del compositore

toggle_toc.show_toc: "Contenuti"
toggle_toc.show_timeline: "Timeline"

questi etichettano il pulsante che passa tra l’indice e la timeline dell’argomento

Come creo un indice?

  1. Scrivi un argomento con intestazioni sintatticamente corrette
  2. Clicca il pulsante dell’indice nel menu a ingranaggio del compositore. Di default appare solo nel primo post di un argomento; abilita l’impostazione abilita indice per le risposte per usarlo anche nelle risposte
  3. Profitto.

Cosa succede al widget di avanzamento dell’argomento quando un argomento ha un indice?

Non c’è spazio per mostrare entrambi contemporaneamente, quindi in un argomento con indice il widget di avanzamento dell’argomento è nascosto mentre sei sul primo post, e vedi l’indice invece. Una volta che scorri oltre il primo post, l’indice viene sostituito dal widget di avanzamento dell’argomento normale mentre leggi le risposte. (Con abilita indice per le risposte attivo, una risposta che ha il proprio indice mostra quello invece.)

Negli argomenti con più di un post, un pulsante Contenuti / Timeline permette ai lettori di passare tra i due, e la preferenza viene memorizzata nel loro browser.

Su schermi stretti l’indice si apre come overlay tramite un pulsante nell’area di avanzamento dell’argomento.

Ci sono lati negativi nell’usare questo componente?

Quasi tutto avviene lato client, quindi puoi rimuovere il componente in qualsiasi momento e i tuoi post verranno renderizzati come prima. L’unica cosa che tocca il tuo contenuto è il pulsante del compositore: avvolge il post in un marcatore <div data-theme-toc="true">, che è il modo in cui il componente sa che il post deve avere un indice. Se disinstalli il componente, quell’involucro rimane nel post ma non ha alcun effetto visibile.

Limitazioni

Le intestazioni h6 e le intestazioni all’interno delle citazioni non sono incluse nell’indice.

Crediti

Questo è iniziato come un hard fork della libreria tocify.js di Greg Franko, ed è stato successivamente riscritto come componenti Ember nativi. Non ci sono dipendenze esterne o richieste.

Un grande ringraziamento a @erlend_sh per il prezioso feedback e a @david per il suo aiuto con le traduzioni.

:discourse2: Hosting da noi? I componenti tema sono disponibili per l’uso nei nostri piani Pro, Business ed Enterprise.

182 Mi Piace
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 post sono stati divisi in un nuovo argomento: Come spostare il TOC sul lato sinistro del post?

Non so come sia implementato questo componente o molto sulla struttura frontend di Discourse, quindi posso solo fare un’ipotesi.

La barra di avanzamento potrebbe essere mostrata solo a) se ci sono più di 1 post nell’argomento e b) la sua partenza potrebbe essere regolata dal 2° post (invece che dal 3°), ma anche c) aggiungere un margine inferiore/superiore confortevole a uno dei due elementi per assicurarsi che l’altro rimanga sufficientemente distante (es. 1vh) da non sembrare strano?

In altre parole, invece di usare l’intero 2° post come spazio, usa il CSS per consentire un po’ di spazio tra loro (se c’è più di 1 post).

Ancora una volta, questo potrebbe non avere alcun senso dato che non so molto sul modo in cui funziona al momento.

3 Mi Piace

Ciao! Abbiamo recentemente installato DiscoTOC per i nostri forum e ci chiedevamo se fosse possibile far leggere al componente il testo alternativo (alt text) nelle immagini? Abbiamo usato immagini per alcune intestazioni delle note di rilascio…

come questa:
Performance and Stability

E sfortunatamente il sistema TOC non sembra in grado di analizzare un’immagine come intestazione, creando una voce vuota nell’elenco e creando un link che porta a una pagina vuota. C’è qualche soluzione alternativa a questo oltre a “non usare immagini”? Grazie! Per il resto, adoriamo il sistema.

1 Mi Piace

La mia ipotesi è che la soluzione sia non usare immagini come titoli, ma forse ci sarà un modo per farlo funzionare aggiungendo del codice al tuo sito che si agganci al codice di DiscoTOC. Se valga la pena esaminare questa possibilità dipenderà da quanto sia importante per te usare immagini nei titoli dei post.

3 Mi Piace

Abbiamo utilizzato immagini come intestazioni nelle nostre note sulla patch in modo coerente per un bel po’ di tempo ormai, ed è parte del nostro marchio e della nostra presentazione; non solo sui forum, ma anche su Steam e simili. Vorremmo avere la possibilità di continuare a utilizzare immagini come intestazioni pur utilizzando DiscoTOC per mantenere la coerenza.

DiscoTOC è stato ottimo per altre cose, come un riepilogo di AMA, un megapost sulla nostra applicazione di avvio del server dedicato, guide per i nuovi giocatori, ecc. Ci piace molto il sistema, ma vorremmo un po’ di funzionalità aggiuntive per il modo in cui presentiamo le note sulla patch.

1 Mi Piace

La funzionalità di ancoraggio dell’intestazione su questo componente è leggermente in conflitto con la funzionalità Automatic header links aggiunta in 2.7.0beta6, poiché le intestazioni ottengono due icone al passaggio del mouse, una da Discourse e una da DiscoTOC. C’è un modo per aggirare questo problema?

1 Mi Piace

Ciao,

Puoi nascondere l’ancora Automatic header links con

.anchor {
  display: none;
}

Ciao dodesz,

Ho reso la larghezza del post molto più grande di quella predefinita e dopo aver installato questo componente sembra sbagliata, potresti dirmi come risolvere questo problema?

:heart: grazie!

Selection_839

1 Mi Piace

Su un forum che esegue Discourse 2.8.0.beta4 (90232af778), l’inclusione del componente DiscoTOC porta a un messaggio di errore:

oops

Il componente era stato attivato in precedenza e aveva sollevato un problema anche con la versione di Discourse precedentemente installata, anche se non so quale fosse quella versione.

Riesci a trovare messaggi di errore relativi al problema nei log degli errori del tuo sito?

Quel message d’erreur est une erreur de backend, tandis que DiscoTOC est un thème-composant de frontend, il est donc difficile qu’ils soient liés. Avez-vous installé des plugins ?

1 Mi Piace

Sfortunatamente, non sono riuscito a trovare nulla di utile in /logs.

Sì, ecco l’estratto pertinente da 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 Mi Piace

Quando un’intestazione è all’interno di una citazione, l’intestazione non viene visualizzata nel TOC. Si potrebbe cambiare questo comportamento?

Questa intestazione non apparirà nel TOC

Contenuto citato

Questa intestazione APPARE nel TOC

Contenuto citato

Non so come sia previsto che funzioni, ma normalmente no perché fa parte di una citazione, non di un titolo di quel testo.

2 Mi Piace

Potresti provare a usare l’HTML <blockquote> invece? Ciò consentirebbe all’intestazione # di trovarsi all’inizio di una riga.

Esempio:

<blockquote>

### Intestazione di ancoraggio

</blockquote>

Intestazione di ancoraggio

Non l’ho provato in un TOC (indice), ma sembra funzionare con le intestazioni con ancoraggio automatico in un post normale.

Perché vuoi che le intestazioni tra virgolette appaiano nell’indice? Qual è il tuo caso d’uso?

Grazie per l’idea. Tuttavia, non ha funzionato per me.

Ecco un esempio di quando uso le citazioni per strutturare visivamente il contenuto che inizia sotto Area Problematica: Età

3 Mi Piace

Perché stai usando le citazioni in quel modo? Indicare la fonte è sufficiente. Inoltre, grammaticalmente è sbagliato, anche in inglese.

È un bug o solo un altro utente, ma… come dovrei chiudere il TOC? Stavo cercando istruzioni di base su come un utente finale dovrebbe usare i messaggi privati e ovviamente sono andato alla documentazione per i nuovi utenti e ho aperto il TOC per vedere se c’erano informazioni.

Stavo usando iPad e DiscourseHub.

Ho ottenuto questo:

kuva

Il TOC va bene. Ma si sovrappone al testo e non sono riuscito a farlo nascondere di nuovo. Quindi cosa diavolo ho sbagliato, o non ho fatto affatto :pleading_face: