1つのページにのみHTMLをインジェクト

テーマの JS タブに以下のようなコードがあります:

import { apiInitializer } from "discourse/lib/api";


export default apiInitializer("0.11.1", (api) => { 
    api.renderInOutlet("above-main-container",
        <template>
            <div>
              html stuff
            </div>
        </template>
     );
});

これをコピー&ペーストしましたが、動作します(例です)。

これをホームページのみ、またはカテゴリーページのみでレンダリングするにはどうすればよいでしょうか。

質問が不適切であれば申し訳ありません。

それは良い質問です。心配しないでください!これで動作します:

import Component from "@glimmer/component";
import { service } from "@ember/service";
import { apiInitializer } from "discourse/lib/api";
import { defaultHomepage } from "discourse/lib/utilities";

class HomepageOnly extends Component {
  @service router;

  get shouldShow() {
    return this.router.currentRouteName === `discovery.${defaultHomepage()}`;
  }

  <template>
    {{#if this.shouldShow}}
      <div>
        html stuff
      </div>
    {{/if}}
  </template>
}

export default apiInitializer((api) => {
  api.renderInOutlet("above-main-container", HomepageOnly);
});

これにより、router サービスと defaultHomepage ユーティリティを使用してホームページにいるかどうかをチェックする新しいコンポーネントが作成されます。その後、そのコンポーネントがアウトレットにレンダリングされます。

さらに詳細な情報は、こちらを参照してください:Add custom content that only appears on your homepage

Krisさん、ありがとうございます。完璧に動作しました。リンクもありがとうございます。勉強中です。