リファレンスなしのプラグイン開発

1週間前から、プラグインを使用してフォーラムでカスタムルートを設定しようとしています。ルートは誰でもアクセスできるように公開する必要があります。プラグインは、指定されたルートでHandlebarsテンプレートのHTMLを単純に表示するだけでよいのです。テンプレートがレンダリングされません。

Discourseのプラグイン開発について調査しましたが、実質的なドキュメントが見つかりません。プラグイン開発に関する質問があれば、常に「管理プラグイン開発」に関する「ガイド」へのリンクが提供され、紫色の触手が表示されます。テンプレートが表示されないという質問があれば、ルーターに関するEmberのドキュメントに単純に参照されます。

そのガイドはまあまあですが、背景で説明されていない魔法が起こっているため、情報を取得して実行することができません。公開ルートを表示したい場合はどうすればよいですか? plugin.rb ファイルはDiscourseによってどのように消費されますか?アプリケーションにルートを追加するために、「add_admin_route」のような他のDiscourse固有のコード/ステートメントを使用できますか?ルートを解決するために特定のファイル構造を使用する必要がありますか?

基本的に、複雑なプラグインを構築しているすべての開発者は、どこでドキュメントを参照していますか?私は経験豊富な開発者ですが、現在の利用可能なガイド/情報では、フォーラムに公開ルートを追加してそのルートでテンプレートをレンダリングするだけでさえ複雑です。

どのような助けでも感謝します。ありがとう!:heart:

「いいね!」 1

マイケルの回答は次のとおりです。ドキュメントはすぐに古くなり、表面をなぞるだけになりがちなので、先行技術を参照してください。対照的に、人気のプラグインは非常に最新の状態に保たれ、より複雑なユースケースをカバーすることがよくあります。

既存のリポジトリを使用してアプローチを理解することは、まさに私と私の同僚がここ数年で学んできたことです。

例として、コアDiscourseチーム(official)、Pavilion(pavilion)、および私のリポジトリのものを参照することをお勧めします(この順序で!:sweat_smile:)。

プラットフォームが依存関係の新しいバージョンや新機能とともに進化するにつれて、たとえばプラットフォームに追加された新しいテクノロジーを活用する公式プラグインは、出発点として非常に役立ちます。

機能的に似たことを行うプラグインを探し、そのアプローチをコピーしてください。

ここに1つのルートを追加するプラグインの例を示します。

「いいね!」 2