在主题列表的Wiki前添加图标?

主题列表中没有特定的 CSS 类。
是否可以通过编辑主题列表模板来实现?

3 个赞

如果只想为话题列表项组件添加一个类,无需修改模板即可实现。您可以使用类似下面的方法。

const discourseComputed = require("discourse-common/utils/decorators").default;

api.modifyClass("component:topic-list-item", {
  pluginId: "add-views-class",
  @discourseComputed()
  unboundClassNames() {
    // 打印话题属性以查看可用的数据
    console.log(this.topic);
    // 继承核心和插件中的默认类
    let classList = this._super(...arguments);
    // 根据某个属性添加新的类
    if (this.topic.views > 100) {
      classList += " has-many-views";
    }
    // 返回修改后的 classList
    return classList;
  }
});

然后添加一些 CSS:

.has-many-views {
  background: red;
}

不幸的是,wiki 是帖子级别的属性,而不是话题级别的属性。因此,它不会被添加到话题列表项模型中。您可以使用标签,或者为 Discourse 创建一个功能请求以添加该类。

6 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.