Discourse Qingwa Timelines - BBCode personalizado para hermosos diseños de línea de tiempo

:information_source: Resumen Un componente de tema de Discourse para crear hermosos diseños de línea de tiempo
:eyeglasses: Vista previa https://meta.appinn.net/t/topic/76953
:hammer_and_wrench: Repositorio GitHub - scavin/discourse-qingwa-timelines
:question: Guía de instalación Cómo instalar un tema o componente de tema
:open_book: ¿Nuevo en los temas de Discourse? Guía para principiantes sobre el uso de temas de Discourse

Instalar este componente de tema

¡Estoy emocionado de compartir un nuevo componente de tema que agrega elegantes diseños de línea de tiempo a tu comunidad de Discourse!

Este es mi primer componente de tema, construido con la ayuda de LLM.

¿Qué es?

Discourse Timelines es un componente de tema que implementa BBCode personalizado [timelines]...[/timelines] para crear hermosos y minimalistas diseños de línea de tiempo. Perfecto para hojas de ruta de proyectos, guías paso a paso, historiales de empresas, divisiones de capítulos y más.

Efecto de línea de tiempo publicado

Botón de barra de herramientas del editor

Vista del editor de Markdown

Características principales

:white_check_mark: BBCode personalizado - Sencilla sintaxis [timelines]
:white_check_mark: Botón de barra de herramientas del editor - ¡No es necesario escribir las etiquetas manualmente (resuelve el problema de escape de corchetes del nuevo editor!)
:white_check_mark: Diseño hermoso - Línea de gradiente vertical con una estética limpia y minimalista
:white_check_mark: Soporte de Markdown - Conserva todo el formato dentro de las líneas de tiempo
:white_check_mark: Multilingüe - Traducciones integradas para 9 idiomas (EN, ZH_CN, ZH_TW, DE, ES, FR, JA, KO, RU)
:white_check_mark: Compatible con temas - Funciona con modos claro y oscuro
:white_check_mark: Personalizable - Cambia fácilmente los colores a través de la configuración de administrador
:white_check_mark: Responsivo - Diseño adaptable a dispositivos móviles
:white_check_mark: Seguro - Protección XSS integrada
:white_check_mark: Sin dependencias - Utiliza solo las API nativas de Discourse

Uso

Usando el botón de la barra de herramientas (¡Lo más fácil!)

  1. Abre el editor
  2. Haz clic en el botón del menú “+” (opciones)
  3. Selecciona “Insertar línea de tiempo”
  4. Edita tu contenido
  5. ¡Publica!

El botón de la barra de herramientas resuelve el problema por el cual el nuevo editor de Discourse escapa automáticamente los corchetes escritos manualmente.

Ejemplo de sintaxis

[timelines]
## Enero 2024 - Lanzamiento del proyecto
El proyecto se inició oficialmente y se formó el equipo.
​
## Marzo 2024 - Primera versión
Se completó el desarrollo de la funcionalidad principal y comenzó la prueba beta.
​
## Junio 2024 - Versión 2.0
Actualización importante con nuevas características:
- Característica A
- Característica B
- Característica C
[/timelines]

Personalización

Todos los colores se pueden personalizar a través de la configuración del tema:

  • timeline_gradient_start - Color del gradiente superior (predeterminado: #ff7a18)
  • timeline_gradient_end - Color del gradiente inferior (predeterminado: #ffb800)
  • timeline_heading_color - Color del texto del encabezado (predeterminado: #d96d14)
  • timeline_dot_color - Color del punto de la línea de tiempo (predeterminado: #ff7a18)
  • timeline_heading_color_dark - Color del encabezado en modo oscuro (predeterminado: #ff9854)
  • timeline_dot_border_color_dark - Borde del punto en modo oscuro (opcional)

¡Espero que encuentres útil este componente! Por favor, házmelo saber si tienes alguna pregunta, comentario o sugerencia. :blush:

25 Me gusta

¡Este es un componente muy agradable! Muy útil.

3 Me gusta

¿Esto también soporta fotos/videos?

Sí, admite imágenes y vídeos.

Aquí tienes una demostración rápida[ENLACE DE DEMOSTRACIÓN]

Screen-20251114144915@2x
Screen-20251114144924@2x

1 me gusta

Muy dulce, de hecho. ¡Excelente trabajo!

¿Funciona esto con DiscoTOC?

Parece depender de los encabezados más grandes, lo que lo hace un poco más inflexible con la jerarquía de la TOC.

Lo probé con DiscoTOC y no encontré ningún problema.

He añadido una tabla de contenido en la página de demostración — siéntete libre de abrirla y ver cómo funciona.

1 me gusta

Gracias por esa referencia.

Al usarlo en una publicación con la tabla de contenido automática (autoTOC), destaca al depender de la marca de encabezado 2 y 3. ¿Hay alguna manera de cambiarlo para que use encabezados 4 o 5 en su lugar/además para tener más flexibilidad?

Si la cronología aparece más abajo en la jerarquía de la tabla de contenido, como después de un encabezado 2 o 3, hace que la tabla de contenido parezca visualmente desordenada.

EDITAR: Puedo envolver esto en etiquetas [details] y elimina que los encabezados de la cronología aparezcan en la tabla de contenido. Una solución razonable para mis propósitos, por si sirve de algo.

2 Me gusta

¡Gracias por la sugerencia! Veré cómo mejorar esto.

1 me gusta

Ahora puede mantener los encabezados de su línea de tiempo fuera de la Tabla de Contenidos (TOC) sin soluciones alternativas:

use pseudo-encabezados dentro de [timelines] anteponiendo ##! (para estilo H2) o ###! (para estilo H3).

Ejemplo:

[timelines]

##! 2020 – Fundación
Contenido…
[/timelines]

Estos se representan como H2/H3 dentro de la línea de tiempo, pero no se tratan como encabezados reales, por lo que el autoTOC se mantiene ordenado independientemente de dónde se encuentre la línea de tiempo.

Si desea que los encabezados de una línea de tiempo permanezcan en la TOC, siga usando ##/### normales.

Ahora mismo, si hay un solo ##! (o ###!) dentro de [timelines], la TOC omitirá toda la línea de tiempo.

Mezclar ambos estilos en la misma línea de tiempo aún no es compatible.

Ahora puede mezclarlos: ##/### todavía aparecen en la TOC, mientras que ##!/###! se representan solo dentro de la línea de tiempo y quedan fuera de la TOC.

Por favor, actualice el componente y pruébelo.

4 Me gusta

¡Esa es una idea de solución alternativa ingeniosa!

Esto pareció funcionar bien para

[timelines]
##! 2020 - Foudnation
Content...
###! March
Content
[/timelines]

Pero no para dos encabezados pseudo-encabezados seguidos de otra lista de formato:

[timelines]
##! 2020 - Foundation
* Listicle
###! March
Dooooooom!
[/timelines]

El primer pseudo-encabezado también prefiere estar en línea con la etiqueta de apertura [timelines] para evitar formatear una línea vacía arriba. Como:

[timelines]##! 2020 - Foundation
Content...
[/timelines]

De lo contrario, hay un espacio por encima del primer pseudo-encabezado como si fuera una línea de bloque de línea de tiempo normal, no un encabezado.

Gracias por tu trabajo en esto, se está volviendo increíblemente flexible de usar ahora.

2 Me gusta

Gracias por señalarlo.

Estoy viendo lo mismo. Ahora mismo, estos se renderizan correctamente:

  [timelines]##! 2020 - Foundation
  Content...
  [/timelines]

y

  [timelines]

  ##! 2020 - Foundation
  Content...
  [/timelines]

Pero esto no funciona:

  [timelines]
  ##! 2020 - Foundation
  Content...
  [/timelines]

Lo estoy investigando, pero aún no he decidido la solución correcta. :joy:

3 Me gusta

El código también parece activarse dondequiera que [timelines] esté presente en la publicación, incluso si está encerrado entre comillas invertidas de código como arriba. Escapar con barra invertida \\[timelines] tampoco parece marcar la diferencia.

ETA: las etiquetas [timelines] y [/timelines] parecen escapar los saltos de línea y aparecen en la misma línea que el texto más cercano en bloques de código con tres comillas invertidas ```

Así que

[timelines]
Blah
Blah
[/timelines]

Aparece como

[timelines]Blah
Blah[/timelines]

Encontré esto mientras escribía una guía para usarlo, así que probablemente sea solo un caso extremo.

1 me gusta