Conselho sobre um componente de tema da página sobre para ocultar o administrador--isso vai desacelerar as coisas?

Quero remover meu usuário da página “sobre” de alguns sites que gerencio. Não sou eu quem vai excluir sua conta, nem nada do tipo. . .

Uma maneira é esta:

Mas um plugin parece um pouco exagerado hoje em dia, então tenho um componente de tema que faz isso:

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");
        }
      });
    });
  },
};

Isso é estúpido por algum motivo? O onPageChange consome muitos recursos? O plugin afetaria apenas o serializador “sobre”, este faz uma verificação a cada mudança de página. Isso é ruim?

Houve um tópico sobre essa mesma questão recentemente que apenas codificou o usuário no CSS. Seria melhor ter apenas um CSS em um tema que fizesse apenas:

.about-page div[data-username="pfaffman"] {
  display: none !important;
}

Não seria útil para ninguém além de mim, é por isso que gosto dessa ideia de componente de tema.

Então, para cada virada de página, exceto “sobre”, você está processando cerca de duas linhas de JavaScript extra?

Não, não acho que isso seja ruim, dada a enorme quantidade de JavaScript que roda o tempo todo no Discourse :slight_smile:

É em grande parte o que eu pensava, mas aprecio muito sua confirmação. Vou ver como deixar isso mais bonito e torná-lo público, e então escrever ferramentas para automatizar a adição a alguns sites.

Muito obrigado.

Então Jay, isso seria um plugin para instalar ou um componente de tema?

Eu acho que isso poderia ser útil até mesmo para estender a funcionalidade para Mods. Para alguns casos de uso.

Este é um componente de tema. Ainda estou limpando um pouco. Farei uma página de tema adequada para ele em breve, mas você pode ver GitHub - literatecomputing/discourse-hide-admins-about: Theme component to hide some admin users from about page se estiver animado para experimentá-lo.

Isso é muito legal. Fico contente em esperar pelo seu lançamento oficial.