DiscoTOC: tabla de contenidos automática

:discourse2: Resumen DiscoTOC te permitirá generar una tabla de contenidos interactiva para tus temas con un solo clic.
:eyeglasses: Vista previa Vista previa en Discourse Theme Creator
:hammer_and_wrench: Enlace al repositorio https://github.com/discourse/DiscoTOC
:open_book: ¿Es tu primera vez con los temas de Discourse? Guía para principiantes sobre el uso de temas de Discourse

Instala este componente de tema

Ejemplos

Escritorio

Móvil

Funcionalidades

toc = tabla de contenidos

  • Genera automáticamente toda la tabla de contenidos mediante un botón en el menú de engranajes del editor

  • La tabla de contenidos siempre estará visible en la pantalla: se desplaza con el contenido, similar al widget de progreso del tema

  • A medida que te desplaces por las secciones del tema, el elemento activo en la tabla de contenidos se resaltará en azul

  • Añade atributos id a los encabezados (puedes enlazar a una sección específica desde otro tema o publicación)

  • Al hacer clic en cualquier enlace de la tabla de contenidos, el navegador navegará a la sección correspondiente (desplazamiento suave)

  • Añade un enlace copiable junto a cada encabezado (si deseas enlazar a él)

  • Soporte para lectura de derecha a izquierda (RTL)

  • Los colores se basan en tu paleta de colores activa actual

¿Cómo funciona?

En resumen, busca los encabezados en los temas que están marcados para tener una tabla de contenidos (mediante el botón del editor) y, si resulta que el tema actual está marcado, toma todos los encabezados y los coloca en la tabla de contenidos (anidados según el nivel de encabezado) - esto significa que tu markdown debe ser sintácticamente correcto.

# encabezado 1
## encabezado 2
### encabezado 3
#### encabezado 4
##### encabezado 5
###### encabezado 6

Puedes subir y bajar en los niveles de encabezado libremente, pero el orden debe ser correcto.

# encabezado 2 
## encabezado 3
## encabezado 3
### encabezado 4
## encabezado 3
# encabezado 2

etc...

Para que los enlaces en la tabla de contenidos funcionen, los encabezados deben tener atributos id. El componente comprobará si los encabezados ya tienen ids y, si los tienen, los respetará. Esto es útil si alguna vez has creado manualmente una tabla de contenidos.

Si los encabezados no tienen ids, el componente generará uno para cada encabezado basándose en su texto (se eliminan los caracteres no deseados).

Una vez hecho todo eso, también añadirá un enlace junto a cada botón que enlace directamente a esa sección:

Configuración

Nombre Descripción
Nivel de confianza mínimo para crear una tabla de contenidos El nivel de confianza mínimo que debe tener un usuario para ver el botón de la tabla de contenidos en el editor
Texto del editor para la tabla de contenidos Texto que aparece en la parte superior del panel de vista previa del editor para indicar que el tema tendrá una tabla de contenidos
Categorías con tabla de contenidos automática Habilitar automáticamente la tabla de contenidos en temas de estas categorías
Etiquetas con tabla de contenidos automática Habilitar automáticamente la tabla de contenidos en temas con estas etiquetas
Nivel mínimo de encabezado Número mínimo de encabezados en un tema para que se muestre la tabla de contenidos

Traducciones

Traducción Valor predeterminado
table_of_contents tabla de contenidos
insert_table_of_contents Insertar tabla de contenidos
jump_bottom Ir al final
toggle_toc.show_timeline Línea de tiempo
toggle_toc.show_toc Contenidos

El tema viene con tres cadenas de texto que puedes traducir o cambiar.

table_of_contents: "tabla de contenidos"

Esto se usa para el botón que abre la tabla de contenidos en dispositivos móviles.

insert_table_of_contents: "Insertar tabla de contenidos"

Esto se usa como el texto para el botón de la tabla de contenidos en el menú de engranajes del editor.

topic_will_contain_a_table_of_contents: "Este tema contendrá una tabla de contenidos"

Este es el texto que aparece en la vista previa del editor para indicar que se generará una tabla de contenidos para el tema.

¿Cómo creo una tabla de contenidos?

  1. Escribe un tema con encabezados sintácticamente correctos.
  2. Haz clic en el botón de la tabla de contenidos en el menú de engranajes (solo aparece al crear un tema regular; las respuestas y los mensajes privados se ignoran).
  3. Listo.

¿Qué sucede con el widget de progreso del tema cuando un tema tiene una tabla de contenidos?

Como probablemente puedas imaginar, no hay espacio para mostrar ambos a la vez, por lo que el funcionamiento de este componente es el siguiente:

En un tema con una tabla de contenidos, el widget de progreso del tema se oculta mientras la primera publicación está visible en la pantalla, y ves la tabla de contenidos en su lugar.

Una vez que te desplazas más allá de la primera publicación, la tabla de contenidos dejará de desplazarse contigo y se mostrará el progreso del tema en su lugar mientras lees las respuestas.

Por lo tanto, la primera publicación obtiene la tabla de contenidos, y las publicaciones subsiguientes obtienen el widget de progreso del tema habitual.

Esto ocurre tanto en escritorio como en móvil.

¿Hay alguna desventaja al usar este componente?

Ninguna que yo conozca; todos los cambios se realizan en el lado del cliente. Por lo tanto, puedes eliminar fácilmente el componente y tus publicaciones volverán a estar como estaban antes de instalarlo.

Limitaciones

Este componente asume la disposición estándar de los temas. Por lo tanto, no funcionará con temas que modifiquen esa disposición, como el tema Vincent. El soporte para temas populares que modifican la disposición llegará en una etapa posterior en forma de configuraciones del componente.

Créditos

Comencé con la biblioteca tocify.js de Greg Franko. Sin embargo, parece que no se ha actualizado en un tiempo, por lo que esto es esencialmente un hard-fork que elimina muchas funciones innecesarias e integra y estiliza el resto para Discourse.

Por lo tanto, no hay solicitudes externas y el tamaño total es de aproximadamente 4 kb comprimidos con gzip.

Un gran agradecimiento a @erlend_sh por sus valiosos comentarios y a @david por su ayuda con las traducciones.

:discourse2: ¿Lo alojamos nosotros? Los componentes de tema están disponibles para usar en nuestros planes Pro, Business y Enterprise.

182 Me gusta
Automatic Table of Contents generation
Creative Uses of Discourse
Wiki improvement – Split content into multiple sections?
:cn: DiscoTOC 自动内容表格
Timeline with labelled step by step sections - how is this achieved?
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
Theme Components - Can Discourse hosted sites install them?
How to get topic navigation menu
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 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
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?
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)
Copy pasting nested lists from Word into a post
?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
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