Puoi pubblicare un link al tuo sito? Sospetto che il problema sia dovuto allo stile del tuo tema.
Ecco il mio link:
https://whois.nhachinhchu.org/t/bang-gia-xem-data-nha-chinh-chu/63389
Mi scusi per l’interruzione della discussione in corso. Ho trovato qualcosa che non sono sicuro se sia già stato segnalato.
Se il post ha un link nell’intestazione, anche il numero di clic viene mostrato nella voce del TOC:
Da questo aggiornamento, vedo un errore nelle pagine di discourse-docs che hanno un indice. Ad esempio, in questa pagina su Meta, l’indice non viene visualizzato e vedo un errore negli strumenti per sviluppatori del mio browser:
Anche sul mio sito, vedo un banner nella parte superiore della pagina che dice “I post potrebbero non essere visualizzati correttamente perché uno dei decoratori di contenuto dei post sul tuo sito ha generato un errore. Controlla gli strumenti per sviluppatori del browser per maggiori informazioni.”
Grazie @simonk, ho appena (2 minuti fa!) unito una correzione per quel problema. Aggiorna il componente sul tuo sito e fammi sapere se il banner sul tuo sito persiste.
Grazie per la risposta! L’errore è sparito, ma l’indice dei contenuti (ToC) non viene visualizzato nella versione discourse-docs della pagina. Prima dell’aggiornamento di ieri, l’indice dei contenuti veniva visualizzato sia nella versione discourse-docs che nella versione “normale”.
(Questo non è urgente per me: ho distribuito l’aggiornamento su un sito di staging, non in produzione, quindi non importa che non funzioni correttamente)
Modifica: sto eseguendo la versione 2.8.0.beta11 (42c71789f9), se ciò fa qualche differenza.
Sì, capisco cosa intendi. Sfortunatamente, le mie modifiche al TOC utilizzano un outlet nella vista dell’argomento che manca nella documentazione. Ci lavorerò.
Ho apportato alcune modifiche aggiuntive al componente oggi, dovrebbero risolvere i problemi sollevati da @mentalstring e @simonk. Nel tuo caso, Simon, è necessaria una ricostruzione completa perché devi anche aggiornare il plugin della documentazione.
@huynhthai824 è molto probabile che il tuo problema venga risolto una volta aggiornato il componente.
Grazie mille, sono così felice, il mio problema è risolto.
Grazie ancora..
Dopo una ricostruzione completa, posso confermare che l’indice appare correttamente sulla pagina discourse-docs - grazie mille ![]()
Vedo che ora hai anche limitato l’indice a 2 livelli. Dato lo spazio orizzontale, penso che sia ragionevole, ma significa che le intestazioni di terzo livello vengono visualizzate nell’indice allo stesso livello di annidamento dei loro genitori.
cioè al momento, questo testo:
# Prima intestazione
## Prima sottointestazione
### Figlio della prima sottointestazione
### Figlio della prima sottointestazione
## Seconda sottointestazione
### Figlio della seconda sottointestazione
### Figlio della seconda sottointestazione
# Seconda intestazione
Produce questo indice:
Mi chiedo se non sarebbe meglio escludere del tutto dall’indice le intestazioni di terzo livello e inferiori?
Inoltre, la struttura DOM non sembra del tutto corretta: ogni elemento di secondo livello è un <ul> con un singolo <li> al suo interno:
Ottima osservazione. Non sono sicuro di quanto spesso usiamo 3+ livelli, ma è possibile reintrodurli, non dovrebbe essere troppo complicato.
Ottima osservazione, di nuovo. Questo è stato un piccolo errore, dovrebbe essere risolto una volta che questa PR sarà unita.
Se sei dell’umore giusto per le richieste di funzionalità, forse la profondità massima potrebbe essere controllata tramite un’impostazione… ![]()
Nella mia esperienza, la funzionalità ToC funziona solo al primo post ma non ai post successivi. È corretto? Se sì, la mia osservazione potrebbe essere trattata come una richiesta di funzionalità? A proposito, la ToC, anche al primo post, è un’ottima aggiunta. R
Ciao a tutti, ho un problema dall’ultimo aggiornamento di questo ottimo componente del tema, ma solo su mobile. Quando clicco sul pulsante della tabella dei contenuti, lo slider con la ToC completa non si apre.
Se uso una finestra molto piccola su desktop, questo pulsante e lo slider funzionano benissimo. Quindi potrebbe essere un problema solo su Android.
Ecco il log sul mio forum aggiornato (Discourse e TOC):
Message
Uncaught TypeError: Cannot read properties of null (reading 'classList')
Url: https://iunctis.fr/theme-javascripts/671f772e071bd55050592ff8541b659afe421259.js?__ws=iunctis.fr
Line: 36
Column: 49
Window Location: https://iunctis.fr/t/le-mensuel-01-decembre-2021/9591
Backtrace
TypeError: Cannot read properties of null (reading 'classList')
at n.showTOCOverlay (https://iunctis.fr/theme-javascripts/671f772e071bd55050592ff8541b659afe421259.js?__ws=iunctis.fr:36:49)
at e.n._join (https://iunctis.fr/assets/vendor-96a5eaa8d436066b954c21ae5afb7f504310945c679465a2f1ba46b429a95edf.js:36:412333)
at e.n.join (https://iunctis.fr/assets/vendor-96a5eaa8d436066b954c21ae5afb7f504310945c679465a2f1ba46b429a95edf.js:36:409358)
at h (https://iunctis.fr/assets/vendor-96a5eaa8d436066b954c21ae5afb7f504310945c679465a2f1ba46b429a95edf.js:36:273784)
at https://iunctis.fr/assets/vendor-96a5eaa8d436066b954c21ae5afb7f504310945c679465a2f1ba46b429a95edf.js:36:65110
at a (https://iunctis.fr/assets/vendor-96a5eaa8d436066b954c21ae5afb7f504310945c679465a2f1ba46b429a95edf.js:36:260923)
at https://iunctis.fr/assets/vendor-96a5eaa8d436066b954c21ae5afb7f504310945c679465a2f1ba46b429a95edf.js:36:65054
at n._triggerAction (https://iunctis.fr/assets/application-945e3f0cb654a8c23b30e86f5e955be5599a8330d68ce75e97b8228ad45ff6fd.js:1:1254524)
at n.click (https://iunctis.fr/assets/application-945e3f0cb654a8c23b30e86f5e955be5599a8330d68ce75e97b8228ad45ff6fd.js:1:1254160)
Env
HTTP HOSTS: iunctis.fr
Se uso un user agent Android nella mia versione desktop di Firefox, ottengo questo errore se clicco sul pulsante in questo forum:
Uncaught TypeError: document.querySelector(...) is null
showTOCOverlay 4916e6ed2a984e00537fe797b799637f1a801ffe.js:374
_join _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:4033
join _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:3999
p _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2870
An _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:1147
o _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2785
An _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:1147
_triggerAction _application-2646ad3bbed41e42bb77806dc41fbea2.js:489
click _application-2646ad3bbed41e42bb77806dc41fbea2.js:488
trigger _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2560
n _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2422
_run _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:4034
_join _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:4033
join _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:3999
p _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2870
handleEvent _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2574
o _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2785
handleEvent _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2574
handleEvent _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2499
setupHandler _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2524
dispatch _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:347
handle _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:342
add _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:342
Oe _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:339
each _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:123
each _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:116
Oe _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:339
on _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:358
initialize _application-2646ad3bbed41e42bb77806dc41fbea2.js:3354
initialize _application-2646ad3bbed41e42bb77806dc41fbea2.js:62
runInstanceInitializers _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2730
each _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:4074
walk _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:4064
each _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:4056
topsort _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:4056
_runInitializer _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2733
runInstanceInitializers _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2730
_bootSync _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2604
didBecomeReady _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2623
invoke _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:3963
flush _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:3955
flush _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:3969
_end _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:4032
end _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:3988
_run _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:4034
_join _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:4033
join _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:3999
p _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2870
bind _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2873
u _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:272
c _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:273
setTimeout handler*a/\u003c _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:274
l _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:265
fireWith _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:266
fire _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:266
l _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:265
fireWith _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:266
ready _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:283
z _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:283
EventListener.handleEvent* _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:283
\u003canonymous\u003e _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:109
\u003canonymous\u003e _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:109
4916e6ed2a984e00537fe797b799637f1a801ffe.js:374:18
Sul mio telefono, ho Chrome versione 97.0.4692, se può essere utile.
Sono l’unico ad avere questo problema?
Questa è una regressione recente dovuta a una modifica nel core, ho una correzione pronta in FIX: Restore outlet in mobile views by pmusaraj · Pull Request #15683 · discourse/discourse · GitHub, una volta che sarà unita, potrai ricostruire il tuo sito e il problema dovrebbe essere risolto. Mi dispiace per questo.
La scorsa settimana, ho anche ripristinato il terzo livello di indentazione per le intestazioni nel componente, come menzionato da Simon sopra.
Sto esitando ad aggiungere un’impostazione qui, la stragrande maggioranza dei casi d’uso non ne ha bisogno. E, il componente ha anche classi per ogni livello, quindi se vuoi nascondere il 4° e il 5° livello, puoi farlo con questo css:
li.d-toc-h4, li.d-toc-h5 {
display:none;
}
È unito e funziona bene, grazie!
Ho notato che il <div> in cima a un argomento ha introdotto un margine extra. Ad esempio:
Ho aggiunto questo al mio tema, che sembra risolvere il problema:
// Gli elementi ToC all'inizio del post introducono spazio indesiderato.
// Discourse imposta il margine superiore del primo figlio nel post a zero,
// ma questo non funziona quando il ToC è il primo figlio.
// Invece, imposteremo il margine superiore dell'elemento successivo al ToC a zero.
div[data-theme-toc="true"] + * {
margin-top: 0px;
}
Forse qualcosa del genere deve essere aggiunto al componente?
Ottima osservazione, ho aggiunto quella regola CSS in questa PR: UX: Keep core's top margin for first item in OP by pmusaraj · Pull Request #30 · discourse/DiscoTOC · GitHub
Ho affrontato questo problema in passato spostando il codice di incorporamento in fondo al post. Sembra un po’ una soluzione di ripiego, ma funziona.
Ho post che hanno DIV aggiuntivi nei loro corpi. Ad esempio, On Storytelling - Workbench - Podcaster Community
Il DIV che attiva la generazione del TOC è all’interno di un DIV… e il TOC lo nota. Ma altri titoli, all’interno di DIV, non sembrano essere notati dal TOC.
…non è lo screenshot migliore. Quello è un H2 in un DIV arbitrario/solo per lo stile che non appare nel TOC.
…non mostrato è il <div che attiva il TOC, che è all’interno del DIV con la coppia attributo/valore folle…
aggiornato ore dopo per aggiungere: Forse solo “:scope h1,” ecc. piuttosto che richiedere che i titoli siano figli immediati dello scope?
…inoltre, questo è stato menzionato a marzo '21, DiscoTOC - automatic table of contents - #255







