Extension des blocs de messages de chat

Bonjour à tous,

Je souhaite développer un plugin pour afficher les notifications d’activité GitLab/GitHub dans Discourse Chat, ou plus largement tout type d’événements réguliers.

Pour obtenir un rendu plus riche, j’aimerais afficher l’activité sous forme de carte. J’ai remarqué que les messages du chat possèdent un champ JSON blocks qui semble utile à cet effet. Malheureusement, à l’heure actuelle, les types de blocs ne semblent pas extensibles sans modifier le code interne de Chat : le schéma, les sérialiseurs et le rendu frontend énumèrent tous les types de blocs/éléments pris en charge.

Serait-il possible de faire de blocks un point d’extension pour les plugins, ou les plugins devraient-ils le considérer comme un détail d’implémentation interne ?

Concrètement, Discourse serait-il ouvert à l’une des solutions suivantes :

  1. un type de bloc générique pour les événements/cartes dans le noyau (core), ou
  2. une API plugin de type registerChatBlockType ?

Je peux revenir à un rendu en Markdown et décorer les messages du chat « cuits » côté client, mais les blocs structurés semblent être un modèle plus propre si cette approche est considérée comme acceptable.

2 « J'aime »