分类中主题列表顶部的标签

大家好,

我通过使用模板、插件出口以及 Discourse 中所有神奇的功能学到了很多东西。是否可以在该类别主题列表的顶部列出所有使用的标签?

我可以大致通过以下方式实现此目的: Discourse Popular Tag Sidebar

我将看看我能学到什么。

您可以轻松获取 top_tags

导入 ajax – import { ajax } from \"discourse/lib/ajax\";,然后 →

ajax(`/c/general.json`).then((data) => {
  console.log(data.topic_list.top_tags);
});

这是 general 类别;您可以将其替换为变量或主题组件设置。

如果您想显示所有未按类别过滤的标签,请使用 /tags.json

要使用主题列表上方的出口,出口名称为 /javascripts/discourse/connectors/above-main-container/{your-file-name}.hbs。我建议您查看其他主题组件中的实现方式,并阅读 https://meta.discourse.org/t/using-plugin-outlet-connectors-from-a-theme-or-plugin/32727。


更困难的是获取所有标签。您可以查看 /c/general.json 的数据结构,它看起来像这样。不要执行 data.topic_list.top_tags,而是可以迭代 data.topic_list.topics 中的每个主题,并将每个主题的 tags 添加到一个数组中。 data.topic_list.topics.map((topic) => topic.tags);

希望这有帮助! :slight_smile: