受信メールモーダルを無効にする方法

こんにちは kynic さん、

onPageChange は使用するには少し広すぎる(そして投稿の読み込み/更新時に信頼性が低い)可能性があります。
代わりに decorateCookedElement を使用できます。これは、調理済みの各投稿要素に対して呼び出されます。

さらに、メールインジケーターを無効にする方法を以下に示します。これは、HTML を含めないための単なるハックです。興味がある場合は、元のコードを こちら で確認できます。

<script type="text/discourse-plugin" version="0.8">
    api.reopenWidget("post-meta-data", {
        html(attrs) {
            if (!attrs.via_email) {
                return this._super(attrs);
            }
          
            // "post-email-indicator" ウィジェットを生成しない。
            attrs.via_email = false;
            const html = this._super(attrs);
            attrs.via_email = true;
          
            return html;
        }
    })

    api.decorateCookedElement((element, helper) => {
        if (helper?.getModel().via_email) {
            element.querySelector('details.elided').remove();
        }
        
    }, { onlyStream: true });
</script>

CSS のみを使用して非表示にすることもできます。

.post-info.via-email,
.cooked details.elided {
    display: none;
}