discourse.orgでホストされているトピックリストのアイテムの下にネストされたトピック投稿を追加するにはどうすればよいですか?例:フィードとしてのトピックリスト

みなさんこんにちは、

今週、Discourse テーマのカスタマイズに関する最初のスプリントを開始しました。デザインが既存の Discourse テーマとかなり異なるため、多くのファイルを変更する必要があることは事前に把握していました。

私たちのアプローチは非常にシンプルです。まずは SASS だけで必要な実装を目指し、どうしても必要な場合にのみ、対応する .hbs/.hbr ファイルを上書きします。後者の方法には、ビューに渡される属性が名前変更や削除された際にテンプレートが破綻するといった、追加の保守リスクがあることは理解しています。しかし、このリスクと独自インフラを維持するコストを比較検討した結果、非営利のクライアントにとって discourse.org でのホスティングの方がより大きな価値を提供すると結論付けました。万が一そのような事態が発生した場合に備え、サイトの監視コードを追加し、対応計画も策定しています。また、実際に問題が発生したとしても、それは比較的簡単な修正で済む可能性が高いと考えています。

さて、本題に入ります。トピック一覧ビューを、トピックの下に返信された投稿がコメントとして表示される「フィードのような体験」に変える方法を検討する必要があります。

これが私たちが構築したいイメージです(現在は各トピックにつき 1 つのコメントのみを表示していますが、場合によってはそれ以上を表示する必要があります)。

現在の状況

@iainbamboo が調査を進め、以下の点を明らかにしました。

  1. トピック一覧に投稿データは既に含まれており、テンプレートを変更するだけで済むのか?→ いいえ、含まれていません。
  2. 各トピックの投稿データをリストに追加し、テンプレートでレンダリングできるようにするにはどうすればよいか?
    1. そもそもこのアプローチは正しいのか?
    2. Ruby コードを修正して、送信されるモデルにデータを追加する方法(プラグインとして実装する可能性あり)を検討すべきか?参考例:Discourse Timeline。プラグインを作成した場合、discourse.org 上で利用可能でしょうか?
    3. Ember 側からデータを取得し、各トピックの投稿を取得するために複数の AJAX リクエストを送信する(サーバーへの負荷増加やレート制限に抵触するリスクあり)という方法をとるべきか?
    4. Ruby コードを修正せずにこれを実現することは可能か?

Discourse の開発者ガイドを読み込み、ソースコードを検討するなどの調査を十分に行った結果、この課題に対する最適な解決策について専門家の助言が必要だと結論付けました。

そして、今ここにたどり着きました :slight_smile:

テーマのフロントエンドでこれを実行しようとすると、あらゆる種類のパフォーマンスやレート制限の問題に直面するでしょう。バックエンドに詳しい方がコメントしてくださるかもしれませんが、プラグインを構築する必要があると思います。