Я хочу убрать свою учётную запись со страницы «О нас» на некоторых сайтах, которыми я управляю. Я не тот, кто будет удалять вашу учётную запись или что-то ещё. . .
Один из способов — вот этот:
Но в наши дни использование плагина кажется излишне громоздким, поэтому у меня есть компонент темы, который делает это:
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-файл в теме, который делал бы вот что:
В основном я так и думал, но я очень ценю ваше подтверждение. Я займусь тем, чтобы немного улучшить этот проект, сделать его публичным, а затем напишу инструменты для автоматизации его добавления на некоторые сайты.