¿Puedes publicar un enlace a tu sitio? Sospecho que el problema se debe al estilo de tu tema.
Aquí mi enlace:
https://whois.nhachinhchu.org/t/bang-gia-xem-data-nha-chinh-chu/63389
Disculpe por interrumpir la discusión en curso. Encontré algo que no estoy seguro si ya se ha informado.
Si la publicación tiene un enlace en un encabezado, el número de clics también se muestra en la entrada de la tabla de contenido:
Desde esta actualización, veo un error en las páginas de discourse-docs que tienen una tabla de contenido. Por ejemplo, en esta página en Meta, la tabla de contenido no se muestra y veo un error en las herramientas de desarrollador de mi navegador:
En mi sitio, también veo un banner en la parte superior de la página que dice “Es posible que las publicaciones no se muestren correctamente porque uno de los decoradores de contenido de las publicaciones en su sitio generó un error. Consulte las herramientas de desarrollador del navegador para obtener más información”.
Gracias @simonk, acabo de (¡hace 2 minutos!) fusionar una corrección para ese problema. Por favor, actualiza el componente en tu sitio y házmelo saber si el banner en tu propio sitio persiste.
¡Gracias por la respuesta! El error ha desaparecido, pero la tabla de contenido (ToC) no se muestra en la versión de la página de discourse-docs. Antes de la actualización de ayer, la ToC se mostraba tanto en la versión de discourse-docs como en la versión “normal”.
(Esto no es urgente para mí; desplegué la actualización en un sitio de staging, no en producción, así que no importa que no funcione correctamente)
Editar: Estoy ejecutando 2.8.0.beta11 (42c71789f9), si eso marca alguna diferencia.
Sí, veo a qué te refieres. Desafortunadamente, mis cambios en la TOC utilizan una salida en la vista de tema que falta en los docs. Lo investigaré.
Hoy hice algunos cambios más en el componente, deberían abordar los problemas planteados por @mentalstring y @simonk. En tu caso, Simon, necesitas una reconstrucción completa porque también necesitas extraer una actualización del plugin de documentación.
@huynhthai824 es muy probable que tu problema se solucione una vez que actualices el componente.
Muchas gracias, estoy muy feliz, mi problema está resuelto.
Gracias de nuevo..
Después de una reconstrucción completa, puedo confirmar que la Tabla de Contenidos aparece correctamente en la página de discourse-docs. ¡Muchas gracias ![]()
Veo que ahora también has restringido la Tabla de Contenidos a 2 niveles. Dado el espacio horizontal, creo que es razonable, pero significa que los encabezados de tercer nivel se muestran en la Tabla de Contenidos al mismo nivel de anidamiento que sus padres.
es decir, en este momento, este texto:
# Primer Encabezado
## Primer Subencabezado
### Hijo del Primer Subencabezado
### Hijo del Primer Subencabezado
## Segundo Subencabezado
### Hijo del Segundo Subencabezado
### Hijo del Segundo Subencabezado
# Segundo Encabezado
Produce esta Tabla de Contenidos:
Me pregunto si sería mejor excluir por completo los encabezados de tercer nivel y superiores de la Tabla de Contenidos.
Además, la estructura del DOM no parece del todo correcta: cada elemento de segundo nivel es un <ul> con un solo <li> dentro:
Buena observación. No estoy seguro de con qué frecuencia usamos 3 o más niveles, pero es posible reintroducirlos, no debería ser demasiado complicado.
Buena observación, de nuevo. Este fue un pequeño error, debería corregirse una vez que se fusione esta PR.
Si estás de humor para solicitudes de funciones, quizás la profundidad máxima se pueda controlar a través de una configuración… ![]()
En mi experiencia, la función de ToC solo funciona en la primera publicación, pero no en las posteriores. ¿Es esto correcto? Si es así, ¿podría considerarse mi comentario como una solicitud de función? Por cierto, la ToC, incluso en la primera publicación, es una gran adición. R
Hola a todos, tengo un problema desde la última actualización de este gran componente de tema, pero solo en el móvil. Cuando hago clic en el botón de la tabla de contenido, el control deslizante con la tabla de contenido completa no se abre.
Si uso una ventana muy pequeña en el escritorio, este botón y el control deslizante funcionan muy bien. Así que podría ser un problema solo en Android.
Aquí está el registro en mi foro actualizado (Discourse y TOC):
Mensaje
Uncaught TypeError: Cannot read properties of null (reading 'classList')
Url: https://iunctis.fr/theme-javascripts/671f772e071bd55050592ff8541b659afe421259.js?__ws=iunctis.fr
Línea: 36
Columna: 49
Ubicación de la ventana: 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
Si uso un user agent de Android en mi versión de Firefox de escritorio, tengo este error si hago clic en el botón en este foro:
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
En mi teléfono, tengo Chrome versión 97.0.4692 si eso ayuda.
¿Soy el único que experimenta esto?
Esta es una regresión reciente debido a un cambio en el núcleo, tengo una solución lista en FIX: Restore outlet in mobile views by pmusaraj · Pull Request #15683 · discourse/discourse · GitHub, una vez que se fusione, puedes reconstruir tu sitio y el problema debería solucionarse. Lamento las molestias.
La semana pasada, también volví a añadir el tercer nivel de sangría para los encabezados en el componente, como mencionó Simon anteriormente.
Estoy dudando en añadir una configuración aquí, la gran mayoría de los casos de uso no la necesitan. Y, el componente también tiene clases para cada nivel, por lo que si deseas ocultar el 4º y 5º nivel, puedes hacerlo con este css:
li.d-toc-h4, li.d-toc-h5 {
display:none;
}
¡Está fusionado y funciona bien, gracias!
Noté que el <div> en la parte superior de un tema introducía un margen adicional. Por ejemplo:
He añadido esto a mi tema, lo que parece solucionarlo:
// Los elementos de la ToC en la parte superior de la publicación introducen espacio no deseado.
// Discourse establece el margen superior del primer hijo de la publicación a cero,
// pero esto no funciona cuando la ToC es el primer hijo. En su lugar, estableceremos
// el margen superior del elemento que sigue a la ToC a cero.
div[data-theme-toc="true"] + * {
margin-top: 0px;
}
¿Quizás algo como esto necesita ser añadido al componente?
Buena observación, he añadido esa regla CSS en esta PR: UX: Keep core's top margin for first item in OP by pmusaraj · Pull Request #30 · discourse/DiscoTOC · GitHub
He abordado este problema en el pasado moviendo el código de inserción a la parte inferior de la publicación. Se siente un poco como una solución improvisada, pero funciona.
Tengo publicaciones que tienen DIVs adicionales en sus cuerpos. Por ejemplo, On Storytelling - Workbench - Podcaster Community
El DIV que activa la generación de TOC está dentro de un DIV… y TOC lo nota. Pero otros encabezados, dentro de DIVs, no parecen ser notados por TOC.
…no es la mejor captura de pantalla. Ese es un H2 en un DIV arbitrario/solo para estilo que no aparece en el TOC.
…no se muestra es el <div> que activa el TOC, que está dentro del DIV con el par de atributos/valores locos…
actualizado horas después para añadir: ¿Quizás solo “:scope h1,” etc. en lugar de requerir que los encabezados sean hijos inmediatos del scope?
…además, esto se mencionó en marzo de 21, DiscoTOC - automatic table of contents - #255







