Hallo kynic,
onPageChange ist möglicherweise zu allgemein für die Verwendung (und unzuverlässig, wenn Sie Beiträge laden/aktualisieren).
Sie können stattdessen decorateCookedElement verwenden. Es wird für jedes “cooked” Element aufgerufen.
Zusätzlich gibt es hier eine Möglichkeit, den E-Mail-Indikator zu deaktivieren. Es ist nur ein Hack, um das HTML nicht einzuschließen. Wenn Sie neugierig sind, können Sie den Originalcode hier einsehen.
<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" Widget nicht generieren.
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>
Sie könnten auch nur CSS verwenden, um sie auszublenden.
.post-info.via-email,
.cooked details.elided {
display: none;
}