Erweitern von Chat-Nachrichtenblöcken

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:

  1. einen generischen Ereignis-/Karten-Blocktyp im Core, oder
  2. 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.

2 „Gefällt mir“