Hallo zusammen,
ich möchte ein Plugin entwickeln, das GitLab-/GitHub-Aktivitätsbenachrichtigungen in Discourse Chat anzeigt, oder allgemeiner gesagt, regelmäßige Ereignisse.
Für eine ansprechendere Ausgabe möchte ich Aktivitäten als Karte darstellen. Dabei ist mir aufgefallen, dass Chat-Nachrichten ein JSON-Feld blocks haben, das sich dafür gut eignet. Leider scheinen die Blocktypen derzeit nicht ohne Änderungen an den Chat-Interna erweiterbar zu sein: Das Schema, die Serialisierer und der Frontend-Renderer listen alle unterstützten Block-/Elementtypen auf.
Wäre es möglich, blocks als Erweiterungsstelle für Plugins zu nutzen, oder sollten Plugins es als interne Implementierungsdetail betrachten?
Konkret wäre Discourse offen für folgende Optionen:
- einen generischen Ereignis-/Karten-Blocktyp im Core, oder
- eine Plugin-API im Stil von
registerChatBlockType?
Ich könnte auf Markdown-Rendering und das Dekorieren der vorbereiteten Chat-Nachrichten auf der Client-Seite ausweichen, aber strukturierte Blöcke scheinen das sauberere Modell zu sein, wenn dieser Ansatz als machbar gilt.