توسيع كتل رسائل الدردشة

مرحبًا بالجميع،

أود تطوير إضافة لعرض إشعارات نشاط GitLab/GitHub في دردشة Discourse، أو بشكل أوسع أي نوع من الأحداث الدورية.

للحصول على مخرجات أكثر ثراءً، أود عرض النشاط على شكل بطاقة، وقد لاحظت أن رسائل الدردشة تحتوي على حقل JSON باسم blocks يبدو مفيدًا لهذا الغرض. لسوء الحظ، في الوقت الحالي، لا تبدو أنواع الكتل قابلة للتوسيع دون تعديل الأجزاء الداخلية للدردشة: فكل من مخطط البيانات (schema)، والمُصيِّرات (serializers)، ومُعرض الواجهة الأمامية يحددون أنواع الكتل/العناصر المدعومة.

هل من الممكن جعل blocks نقطة توسعة للإضافات، أم ينبغي على الإضافات التعامل معها كتفاصيل تنفيذية داخلية؟

على وجه التحديد، هل ستكون Discourse منفتحة على أي من الخيارات التالية:

  1. نوع كتلة عام للأحداث/البطاقات في النواة (core)، أو
  2. واجهة برمجة تطبيقات للإضافات على غرار registerChatBlockType؟

يمكنني العودة إلى عرض نص Markdown وتزيين رسائل الدردشة المُطهية (cooked) من جانب العميل، لكن الكتل المهيكلة تبدو النموذج الأنظف إذا كان هذا الاتجاه يُعتبر خيارًا مقبولًا.

إعجابَين (2)