关于从关于页面主题组件隐藏管理员的建议--这会减慢速度吗?

我想从我管理的某些网站的“关于”页面中删除我的用户。我不会删除您的帐户,或其他任何内容……

一种方法是:

但插件现在看起来有点矫枉过正,所以我有一个主题组件可以做到这一点:

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;
}

这会更好吗?它除了我之外对任何人都没有用,这就是为什么我有点喜欢这个主题组件的想法。

2 个赞

对于“关于”页面以外的每次页面跳转,您是否在处理大约两行额外的 JavaScript?

不,考虑到 Discourse 一直在运行的海量 JavaScript,我认为这并不可怕 :slight_smile:

2 个赞

这基本就是我所想的,但我非常感谢你的确认。我会看看如何美化这个东西并公开它,然后编写工具来自动化将其添加到一些网站。

非常感谢。

2 个赞

那么 Jay,这会是一个需要安装的插件还是一个主题组件?

我认为这甚至可以方便地扩展到 Mods 的功能。用于某些用例。

这是一个主题组件。我还在对其进行一些清理。我将在下次制作一个专门的主题页面,但如果您迫不及待想尝试一下,可以访问 https://github.com/literatecomputing/discourse-hide-admins-about。

2 个赞

这很酷。不过,我乐意等待你们的正式推出。

1 个赞

此主题在上次回复后 30 天自动关闭。不再允许回复。