管理しているいくつかのサイトの「アバウト」ページからユーザーを削除したいと考えています。アカウントを削除したり、その他諸々を行うのは私ではありません。 . .
その方法の一つはこれです。
しかし、プラグインは最近では少し大げさなように思えるので、これを行うテーマコンポーネントがあります。
import { withPluginApi } from "discourse/lib/plugin-api";
const hidden_admins = settings.hidden_admins.split("|");
const PLUGIN_ID = "hide-admins";
export default {
name: "theme-javascript-initializer",
initialize() {
withPluginApi("0.8.30", (api) => {
api.onPageChange((url) => {
if (url != "/about") {
return;
}
for (const admin of hidden_admins) {
var element = document.querySelector(`[data-username=${admin}]`);
if (element === null) {
break;
}
element.classList.add("hide-me");
}
});
});
},
};
これは何らかの理由で愚かなことでしょうか? onPageChange は非常にコストがかかりますか? プラグインはアバウトシリアライザーのみに影響しますが、これはすべてのページ変更でチェックを行います。それは悪いことですか?
最近、この問題に関するトピックがあり、ユーザーを CSS にハードコーディングしていました。テーマに単一の CSS を追加するだけで、次のようになります。
.about-page div[data-username="pfaffman"] {
display: none !important;
}
これはより良いでしょうか? 私以外の誰にとっても役立つものではないので、このテーマコンポーネントのアイデアが気に入っています。