Discourse Qingwa Timelines - BBCode personnalisé pour de superbes mises en page de chronologie

:information_source: Résumé Un composant de thème Discourse pour créer de beaux agencements de chronologie
:eyeglasses: Aperçu https://meta.appinn.net/t/topic/76953
:hammer_and_wrench: Dépôt GitHub - scavin/discourse-qingwa-timelines
:question: Guide d’installation Comment installer un thème ou un composant de thème
:open_book: Nouveau aux thèmes Discourse ? Guide pour débutants sur l’utilisation des thèmes Discourse

Installer ce composant de thème

Je suis ravi de partager un nouveau composant de thème qui ajoute des agencements de chronologie élégants à votre communauté Discourse !

Ceci est mon premier composant de thème, construit avec l’aide de LLM.

Qu’est-ce que c’est ?

Discourse Timelines est un composant de thème qui implémente un BBCode personnalisé [timelines]...[/timelines] pour créer de beaux agencements de chronologie minimalistes. Parfait pour les feuilles de route de projet, les guides étape par étape, les historiques d’entreprise, les divisions de chapitres, et plus encore.

Effet de chronologie publié

Bouton de la barre d’outils de l’éditeur

Vue de l’éditeur Markdown

Caractéristiques principales

:white_check_mark: BBCode personnalisé - Syntaxe simple [timelines]
:white_check_mark: Bouton de la barre d’outils de l’éditeur - Pas besoin de taper les balises manuellement (résout le problème d’échappement des crochets du nouvel éditeur !)
:white_check_mark: Beau design - Ligne de gradient verticale avec une esthétique épurée et minimaliste
:white_check_mark: Support Markdown - Préserve toute la mise en forme à l’intérieur des chronologies
:white_check_mark: Multilingue - Traductions intégrées pour 9 langues (EN, ZH_CN, ZH_TW, DE, ES, FR, JA, KO, RU)
:white_check_mark: Compatible avec les thèmes - Fonctionne avec les modes clair et sombre
:white_check_mark: Personnalisable - Changez facilement les couleurs via les paramètres d’administration
:white_check_mark: Réactif - Agencement adapté aux mobiles
:white_check_mark: Sûr - Protection XSS intégrée
:white_check_mark: Aucune dépendance - Utilise uniquement les API natives de Discourse

Utilisation

Utilisation du bouton de la barre d’outils (Le plus simple !)

  1. Ouvrez l’éditeur
  2. Cliquez sur le bouton du menu “+” (options)
  3. Sélectionnez “Insérer une chronologie”
  4. Modifiez votre contenu
  5. Publiez !

Le bouton de la barre d’outils résout le problème où le nouvel éditeur Discourse échappe automatiquement les crochets tapés manuellement.

Exemple de syntaxe

[timelines]
## Janvier 2024 - Lancement du projet
Le projet a été officiellement lancé et l'équipe a été formée.
​
## Mars 2024 - Première version
Le développement des fonctionnalités principales a été achevé et les tests bêta ont commencé.
​
## Juin 2024 - Version 2.0
Mise à jour majeure avec de nouvelles fonctionnalités :
- Fonctionnalité A
- Fonctionnalité B
- Fonctionnalité C
[/timelines]

Personnalisation

Toutes les couleurs peuvent être personnalisées via les paramètres du thème :

  • timeline_gradient_start - Couleur du dégradé supérieur (par défaut : #ff7a18)
  • timeline_gradient_end - Couleur du dégradé inférieur (par défaut : #ffb800)
  • timeline_heading_color - Couleur du texte du titre (par défaut : #d96d14)
  • timeline_dot_color - Couleur du point de la chronologie (par défaut : #ff7a18)
  • timeline_heading_color_dark - Couleur du titre en mode sombre (par défaut : #ff9854)
  • timeline_dot_border_color_dark - Bordure du point en mode sombre (facultatif)

J’espère que vous trouverez ce composant utile ! N’hésitez pas à me faire part de vos questions, commentaires ou suggestions. :blush:

25 « J'aime »

C’est un très beau composant ! Très utile.

3 « J'aime »

Est-ce que cela prend également en charge les photos/vidéos ?

Oui, il prend en charge les images et les vidéos.

Voici une courte démo[LIEN DE DÉMO]

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

1 « J'aime »

Très doux en effet. Excellent travail !

Est-ce que cela fonctionne avec le DiscoTOC ?

Il semble qu’il dépende des en-têtes plus grands, ce qui le rend un peu moins flexible avec la hiérarchie de la table des matières.

Je l’ai testé avec DiscoTOC et n’ai trouvé aucun problème.

J’ai ajouté une table des matières sur la page de démonstration — n’hésitez pas à l’ouvrir et à voir comment cela fonctionne.

1 « J'aime »

Merci pour cette référence.

Lors de son utilisation dans une publication avec l’autoTOC, il se démarque en s’appuyant sur le markdown des en-têtes 2 et 3. Existe-t-il un moyen de le faire passer à l’utilisation des en-têtes 4 ou 5 à la place/en plus pour plus de flexibilité ?

Si la chronologie apparaît plus bas dans la hiérarchie du TOC, comme après un en-tête 2 ou 3, cela donne au TOC un aspect visuellement désordonné.

EDIT : Je peux l’encapsuler dans des balises [details] et cela supprime les en-têtes de la chronologie de l’affichage dans le TOC. Solution de contournement raisonnable pour mes besoins, pour information.

2 « J'aime »

Merci pour la suggestion ! Je vais étudier comment améliorer cela.

1 « J'aime »

Vous pouvez désormais exclure les titres de votre chronologie de la table des matières (TOC) sans contournements :

utilisez des pseudo-titres à l’intérieur de [timelines] en les préfixant avec ##! (pour le style H2) ou ###! (pour le style H3).

Exemple :

[timelines]

##! 2020 – Fondation
Contenu…
[/timelines]

Ceux-ci s’affichent comme des H2/H3 à l’intérieur de la chronologie mais ne sont pas traités comme de vrais titres, donc l’autoTOC reste propre, quel que soit l’emplacement de la chronologie.

Si vous souhaitez que les titres d’une chronologie restent dans la TOC, continuez à utiliser les ##/### normaux.

Actuellement, s’il y a ne serait-ce qu’un seul ##! (ou ###!) à l’intérieur de [timelines], la TOC ignorera toute la chronologie.

Mélanger les deux styles dans la même chronologie n’est pas encore pris en charge.

Vous pouvez les mélanger maintenant : ##/### apparaissent toujours dans la TOC, tandis que ##!/###! s’affichent uniquement à l’intérieur de la chronologie et restent en dehors de la TOC.

Veuillez mettre à jour le composant et l’essayer.

4 « J'aime »

C’est une idée de contournement astucieuse !

Ceci semblait fonctionner correctement pour

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

Mais pas pour deux pseudo-en-têtes suivant une autre liste de formatage :

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

Le premier pseudo-en-tête préfère également être en ligne avec la balise ouvrante [timelines] pour éviter de formater une ligne vide au-dessus. Comme :

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

Sinon, il y a un espace au-dessus du premier pseudo-en-tête comme s’il s’agissait d’une ligne de bloc de chronologie normale, non-en-tête.

Merci pour votre travail là-dessus, il devient incroyablement flexible à utiliser maintenant.

2 « J'aime »

Merci d’avoir signalé le problème.

Je constate la même chose. Actuellement, ceux-ci s’affichent correctement :

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

et

  [timelines]

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

Mais celui-ci ne fonctionne pas :

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

Je suis en train d’examiner la question, mais je n’ai pas encore trouvé la bonne solution. :joy:

3 « J'aime »

Le code semble également s’activer partout où [timelines] est présent dans la publication, même s’il est entouré d’accents graves de code comme ci-dessus. L’échappement avec une barre oblique inverse \\[timelines] ne semble pas non plus faire de différence.

ETA : les balises [timelines] et [/timelines] semblent échapper aux sauts de ligne et apparaître sur la même ligne que le texte le plus proche dans les blocs de code avec trois accents graves ```

Donc

[timelines]
Blah
Blah
[/timelines]

Apparaît comme

[timelines]Blah
Blah[/timelines]

Rencontré ceci lors de la rédaction d’un guide pour l’utiliser, c’est donc probablement juste un cas limite.

1 « J'aime »