在自定义 CSS 中使用 discourse 信息和基本计算?

大家好,

我正在尝试查找一种方法来显示主页上分类中的主题数量,以及是否可以根据标签进一步对它们进行排序?

另外,有没有办法使用javascript对上面的数字进行简单的数学运算?

1 个赞

您可以从这里开始:

<script type="text/discourse-plugin" version="1.4.0">
    api.modifyClass("component:topic-list", {
      pluginId: "returnTopicList",
      didInsertElement: function() {
        this._super();
        console.log(this.topics);
      }
    });
</script>

这将输出主题列表及其属性(包括标签)。
然后,我想您只需要稍微处理一下数组即可实现您想要的功能。

1 个赞

@Canapin

谢谢你的帮助!我对 Discourse 的 JavaScript 工作原理相当不了解,你能解释一下它的作用/工作原理以及如何使用它吗?

我一直在寻找一些地方来了解它的工作原理,有什么建议吗?

2 个赞

为了提供更多上下文,我正尝试从 Discourse 中提取每个类别的帖子数量,并将其用于 Discuss1-4 的表格中。如果可能,我还希望将帖子的子类别按 A-F 进行排序。总而言之,我希望它能在帖子被移动时自动更新,这样我就不必手动操作了。
希望我的描述够清楚,如有不清楚的地方,请随时提出 :slight_smile:

(抱歉表格有些粗糙)

1 个赞

我不太明白您想实现什么。您希望在哪里显示此表?在新页面还是现有页面上?
A B C D E F 是什么意思?讨论 1 到 4 是什么意思?它们是类别吗?
您需要每个类别的帖子总数吗?

1 个赞

好的,我来重新表述一下,因为我之前在调用标签时犯了一个小错误,把标签称为子类别。

所以,我们把讨论 1-4 视为类别 1-4,
A-F 将用于标签

所以,我们假设表格是空白的。我在类别 1 下创建一个新主题,并添加一个“A”标签。现在表格应该显示在类别 1 旁边,并在“A”下方有一个主题:

如果我删除标签“A”并分配标签“C”,表格将相应更新。

有办法做到这一点吗?

1 个赞

您是想要这些信息,还是想在 egret 页面上为每个用户显示它?如果是前者,您可能需要数据浏览器插件。

2 个赞

CSS 对于此目的来说太肤浅了。它是一种样式语言,有助于进行布局和外观设计。

您需要一个端到端的解决方案,使用 Rails 来计算、汇总和序列化您的数据,使用 Ember JavaScript 来接收数据并在路由上精美地呈现它,并使用 CSS 按需设置样式。您甚至可以使用 D3 库来制作特别精美的可视化效果。

看看我的 词云网络可视化 插件,它们完全可以做到这一点。修改它们以满足您的需求。

4 个赞

我希望它能为每个用户显示

1 个赞

太棒了!我会看看这个。

2 个赞

@merefield

在查看了这些并从生成器链接了解了它的工作原理后,您确定我能仅通过这些获取某个类别下的主题数量吗?在将其集成到我的 discourse 之前先确认一下。

1 个赞

当然,您需要创建自己的自定义计算,但我分享的是一个合适的框架,它覆盖了架构中所有正确的部件。

您如何使用它取决于您……

2 个赞