お探しの機能は「ポストデコレーター」と呼ばれます。これは、各投稿がレンダリングされる前にスクリプトを実行できるフックです。これは プラグイン API の一部です。
さて、あなたがやりたいこと(すべての外部リンクをリダイレクトすること)についてですが、あまりにも多くの摩擦を生むのは良い考えではないと思いますので、その点についてはお手伝いできません。それどころか、その部分はすでに自分で解決されているようです。とはいえ、投稿内のすべての外部リンクを対象とする設定の例にコメントを付けたものを以下に示します。
これはテーマまたはテーマコンポーネントの header セクションに記述します。
<script type="text/discourse-plugin" version="0.8">
// 再利用できるようにホスト名を保存します。
const siteHostname = location.hostname;
// すべての投稿でこれを行うデコレーターを作成しましょう
api.decorateCooked(
post => {
// 投稿にリンクはありますか?
const links = [...post[0].querySelectorAll("a")];
// リンクがない場合は終了します。
if (!links.length) return;
// リンクがある場合は、それらをフィルタリングして外部リンクのみを取得します
const externalLinks = links.filter(
link => link.hostname !== siteHostname
);
// 外部リンクがある場合は、何らかの処理を行います。例えば、各外部リンクに
// クラスを追加することができます。
externalLinks.forEach(link => {
link.classList.add('external-link');
// ここでさらに処理を追加できます。
});
},
// メモリリークを防ぐためにデコレーターに ID を指定します。
{ id: "external-link-decorator" }
);
</script>
繰り返しになりますが、ユーザーをリダイレクトするのは摩擦が大きすぎて、すぐにうっとうしくなるでしょう。そのため、別のアプローチを検討することをお勧めします。例えば、外部リンクの隣に目立たないアイコンを追加し、ユーザーにその意味を教えるのはどうでしょうか?
