据我所知,描述信息(并在此处维护)存储在第一个帖子的第一部分中。
我想在分类的“顶部”和“最新”按钮附近添加链接。由于主题无法为每个分类单独配置,我本想将链接数据直接添加到分类描述的“隐藏部分”——因为在分类列表中,只显示分类描述的第一部分。
数据格式如下:{TAG,linkText,linkTitle,linkHref}。
抱歉,我觉得这个方案可能不是最好的:
是否可以在主题或组件中获取分类描述文本的完整数据?
提前感谢。
据我所知,描述信息(并在此处维护)存储在第一个帖子的第一部分中。
我想在分类的“顶部”和“最新”按钮附近添加链接。由于主题无法为每个分类单独配置,我本想将链接数据直接添加到分类描述的“隐藏部分”——因为在分类列表中,只显示分类描述的第一部分。
数据格式如下:{TAG,linkText,linkTitle,linkHref}。
抱歉,我觉得这个方案可能不是最好的:
是否可以在主题或组件中获取分类描述文本的完整数据?
提前感谢。
是的,这正是 Category Banners 所实现的功能。
嗯,我认为
但两者都只返回了描述的第一章,而不是包含该描述的整个分类首帖。我是否遗漏了什么?
哦,这是预期行为。Discourse 在 UI 的各个位置都仅使用“关于”主题的第一段作为分类描述。
如果您需要其他内容,则需要额外调用一次 API 来获取。
在主题组件中可以实现这一点吗?您有示例吗?
Topic List Sidebars 正好实现了这一点!
如果目标是在特定分类页面上有条件地渲染这些链接,那么我建议退一步,尝试另一种方法。
假设你有一个如下所示的设置:
target_category, link_text, link_title, link_href
然后你可以像这样进行操作:
api.addNavigationBarItem({
displayName: text, // 链接文本
name: title, // 链接标题
href: href, // 链接地址
customFilter: category => {
return (
category && category.name.toLowerCase() === TARGET_CATEGORY.toLowerCase() // 目标分类
);
}
});
这里的关键部分是 customFilter,因为我认为这正是你想要的功能。
如果你有多个链接,则需要将其包裹在一个 forEach 循环中。
最后,我想这就是全部了。请随意使用。向所有参与 Discourse 开发的人致以大大的“感谢”。工作做得太棒了。
主题组件链接: