プラグイン開発 - モデルのデータを取得してウィジェットを再レンダリングするより良い方法とは?

皆さん、こんにちは!

リンクされた参照としてウィキリンクされたページを読み込もうとするプラグインを開発中です。

基本的な実装は機能していますが、現在のデザインが気に入らず、これをよりスムーズにするのに役立つAPIがないか確認したいと思いました。

現在の私の方法は次のとおりです。discourse-wikilinks/assets/javascripts/initializers/wikilinks-init.js at main · dvargas92495/discourse-wikilinks · GitHub

Tl;dr:

  • post-links ウィジェットで api.reopenWidget を使用して html メソッドをオーバーライドします。
  • ウィジェットの 最初の レンダリング時に、トピックタイトルを取得し、タイトルに [[タイトル]] が含まれるトピックを検索します。
  • フェッチ後、応答データを使用して再レンダリングをスケジュールし、次のレンダリングで無限にフェッチしないようにフラグを使用します。

このアプローチは最適ではありません。

  • 初期レンダリングと残りのデータがレンダリングされるまでの間に遅延があります。
  • 無限フェッチを防ぐフラグは、将来エラーが発生しやすいようです。
  • API呼び出しを2回行う必要があります。1回はトピックタイトルを取得するため(ウィジェットツリーの上位で利用可能になるはずです)、もう1回はリンクのためです。
  • 元の html ウィジェットメソッドをプラグインのコードにコピー&ペーストする必要があり、フォークに対して脆弱になります。

これらの問題を軽減する方法について、何か考えはありますか?理想的には、元の loadTopicView 呼び出しを編集して、ウィキリンクを含めたいです。

また、Discourse またはコミュニティの誰かがコンサルティングコールを提供していますか?Discourse のアーキテクチャと利用可能なプラグインについて、専門家との通話に費用を払って深く掘り下げたいと思っています。すでにほとんどの開発ドキュメントを確認し、コードベースをかなり見て回りました。