rsigg
2024 年 6 月 21 日午後 9:02
136
The PluginApi - modifyClass()セクション には、古い、または無効なリンクや参照がたくさんあります…
このファイルは大きく変更されており、checkReplyLength はもはや存在しません…
そして、同じセクションの後半:
このリンクは「404 - ページが見つかりません」エラーになります…
その後、このドキュメントの使用を諦めました…
「いいね!」 4
この部分のドキュメントは少し古いようです。(また、api.modifyClass は pluginId が欠落していると不平を言います)。about-page がロードされたときにスクリプトを実行するにはどうすればよいですか?これは機能しません(エラーはありません)。他のコンポーネントでは、結果が混在していました。よろしくお願いします。
<script type="text/discourse-plugin" version="0.11.1">
api.modifyClass("component:about-page", {
pluginId: 'discourse-about-theme',
didInsertElement() {
this._super(...arguments);
console.log("Welcome to the about page!");
}
});
</script>
「いいね!」 1
Don
2024 年 8 月 12 日午前 11:17
139
こんにちは about-page が .gjs になり、それにより直接変更できなくなりました。変更を行うには、そのページで利用可能なコネクタのいずれかを使用する必要があります。
これらは、Plugin outlet locations theme component で簡単に確認するか、ファイル \u003cPluginOutlet\u003e で確認できます。
「いいね!」 4
どうもありがとうございます。理にかなっています。コネクタを使用しましたが、問題なく動作しています。
「いいね!」 2
ddsgad
(DDSGadget)
2025 年 2 月 5 日午前 11:03
143
このガイドはまだ正確ですか?ガイド全体を読んでテーマコンポーネントを作成しようとしましたが、サンプルテーマコンポーネントを見ると、指示に従っているものが一つもありませんでした。例えば、discourse-brand-headerテーマコンポーネントを見ると、header.htmlでapi.createwidgetなどを使用していたものが、initializerやComponentなどを使用した全く異なるコードにリファクタリングされているようです。非常に複雑なコードです。ガイドではウィジェットを使用したAPIメソッドについて説明していますが、どのコンポーネントも実際にはそれを使用していません。コンポーネントを使用するための更新されたガイドなどはありますか?
編集:ウィジェットAPIは廃止される予定ですが、代わりに何を使用するかのガイドはありますか?ここのガイド全体が非推奨のコードに基づいているように見えますか?
「いいね!」 4
それは本当です。ガイドは更新されるべきです。しかし、ファイル構造など、まだ非常に関連性のある部分もあります。
「いいね!」 2
ddsgad
(DDSGadget)
2025 年 2 月 5 日午前 11:12
145
はい、SCSS は関連性があるようですが、それ以外は、サンプルテーマのコンポーネントがすべてコンポーネントを使用しており、ここで教えられているものとはまったく異なるコードベースにリファクタリングされているようです。プラグイン API セクションでリンクされているすべてのコンポーネントを確認しましたが、すべてがここでガイドで教えられているものとはまったく異なる方法でリファクタリングされています。ウィジェットはまったく使用されなくなりました。すべてコンポーネントです。ウィジェットが廃止されるため、新しいコンポーネントを実際に適切に使用する方法に関するガイドはありますか?
「いいね!」 2
ddsgad
(DDSGadget)
2025 年 2 月 5 日午前 11:17
146
例えば、ちょうど今、この投稿を見つけました:Upcoming Header Changes - Preparing Themes and Plugins - レガシーウィジェットからGlimmerコンポーネントにすべてリファクタリングしたということですか?しかし、このチュートリアルはすべてレガシーウィジェットです。Glimmerコンポーネントとは具体的に何ですか?また、ガイドはありますか?レガシーウィジェットで開発を始める前に、早くもこれに気づけて幸運だったと感じています。このガイドに、ウィジェットはレガシーであり、もう使用すべきではないという注意書きを追加してみてはどうでしょうか?
「いいね!」 2
ddsgad
(DDSGadget)
2025 年 2 月 5 日午前 11:35
147
わかりました。Glimmer は新しい Ember コンポーネントであることがわかりました。しかし、Discourse の目次コードを見てみると、驚きました。以前は 10 行程度のコードだったものが、現在は複数のファイルにまたがる数百行の複雑なクラス、デコレーターなどになっています。Ember は React のような状況になり、物事を再び非常に複雑にすることにしたと推測します。テーマコンポーネントは、シンプルなウィジェット API を持つものではなくなり、広範なコーディングが必要になったようです。
「いいね!」 2
david
(David Taylor)
2025 年 2 月 5 日午後 12:29
148
@ddsgad はい、おっしゃる通りです。このガイドのほとんどは非常に時代遅れになっています。最近、一般的なドキュメントの改善に取り組んでおり、今後数週間でこのガイドを更新/置き換える予定です。
ご指摘の通り、DiscoTOCのような実際の例は良い参考になります。そして、より最新の具体的なガイドをいくつかご紹介します。
Emberとそのコンポーネントに関する一般的な情報については、Emberガイド を参照することをお勧めします。
「いいね!」 6
ddsgad
(DDSGadget)
2025 年 2 月 5 日午後 2:45
149
リンクをありがとうございます。大変参考になりました。現在、Discourseトピック(最初の投稿)でカスタムを行い、より良いデザインを作成することに専念しており、これまではプレーンなVanilla JavaScript(querySelectorAllなど)とSCSSでほとんどのことができていましたので、今回は引き続きそれらを使用するつもりです。
「いいね!」 3
david
(David Taylor)
2025 年 3 月 18 日午後 4:11
150
OP の長くて古いチュートリアルは、より一般的な紹介/案内情報に置き換えられました。これには、よりモダンなテーマ開発パターンに従った、まったく新しい7段階チュートリアル へのリンクが含まれています。
「いいね!」 5
全て読みました、楽しかったです!よく説明されていて、とても良い導入でした!
「いいね!」 3
これらのガイドが大好きです!ついに api.decorateCookedElement を解読できました。また役立つドキュメントをありがとうございます!
「いいね!」 4