Estensione dei blocchi dei messaggi di chat

Ciao a tutti,

Vorrei sviluppare un plugin per visualizzare le notifiche delle attività di GitLab/GitHub in Discourse Chat, o più in generale qualsiasi tipo di evento periodico.

Per ottenere un output più ricco, vorrei visualizzare le attività sotto forma di card e ho notato che i messaggi della chat dispongono di un campo JSON blocks che sembra utile a questo scopo. Purtroppo, al momento, i tipi di blocco non sembrano estensibili senza modificare le parti interne di Chat: lo schema, i serializzatori e il renderer frontend elencano tutti i tipi di blocco/elemento supportati.

Sarebbe possibile rendere blocks un punto di estensione per i plugin, oppure i plugin dovrebbero considerarlo un dettaglio implementativo interno?

Nello specifico, Discourse sarebbe aperto a una delle seguenti soluzioni:

  1. un tipo di blocco generico per eventi/card nel nucleo del software (core), oppure
  2. un’API di plugin di tipo registerChatBlockType?

Posso sempre ricorrere al rendering del Markdown e alla decorazione dei messaggi della chat

2 Mi Piace