主题横幅组件

此组件可让您将任何主题渲染为自定义 URL 路径上的横幅。

默认外观非常基础。屏幕截图显示了默认的“欢迎”主题在“最新”列表上作为横幅:

但横幅将渲染主题支持的各种内容,例如表情符号、动画、视频链接……因此,您可以从多种方式使用(和滥用)它 :see_no_evil:

在设置中,您可以通过其相对 URL 和 ID 选择视图和主题。您还可以将横幅放置在三个插件插槽中的一个上,并且仅向特定组显示它们:

:+1: 致谢: 此组件的小部件代码本质上是 @awesomerobot@xrav3nzCategory Sidebars component 的副本。

|||
|-|-|-|
| :hammer_and_wrench:|存储库| GitHub - nolosb/discourse-topic-banners: A Discourse theme component. Renders any topic as a banner on custom url paths. |
| :question:|安装指南|如何安装主题或主题组件|

安装主题组件

16 个赞

这是否包括投票(您可以与之互动)?(这是我们一直非常怀念的功能,可以将投票设为对所有人可见,而不是隐藏在帖子中的某个地方)

3 个赞

好问题!但没有,我刚试过了:

投票会像在编辑器预览中一样显示。你无法与之互动,也不会显示结果。

3 个赞

我在这个组件中发现了一个 bug,当启用它并配置为仅显示特定组的主题时。

如果访客或用户不是来自该组,则页面更新将不正确,刷新浏览器页面后其他主题将无法加载。

控制台:

Uncaught TypeError: Cannot read properties of null (reading 'groups')
    at n.html (68eb2e30e7629f8db22df6fed8efb777b0183d8d.js?__ws=mydomain.com:114:36)
    at n.value (application-8b970b30b88888346a1f4d53543a21332202376215babe59aa315ac2054a2627.js:sourcemap:1:3239172)
    at n.value (application-8b970b30b88888346a1f4d53543a21332202376215babe59aa315ac2054a2627.js:sourcemap:1:3235241)
    at s (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:90601:45)
    at t.exports (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:90584:21)
    at m (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:90988:17)
    at h (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:90856:9)
    at d (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:90843:5)
    at n.rerenderWidget (application-8b970b30b88888346a1f4d53543a21332202376215babe59aa315ac2054a2627.js:sourcemap:1:1455271)
    at t.invoke (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:66550:16)
    at e.t.flush (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:66442:13)
    at e.t.flush (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:66646:21)
    at e.n._end (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:67222:34)
    at e.n.end (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:66908:12)
    at e.n._run (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:67277:16)
    at e.n._join (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:67251:21)
    at e.n.join (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:66968:19)
    at h (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:53760:28)
    at HTMLDocument.<anonymous> (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:53864:19)
    at l (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:3776:29)
    at c (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:3844:12)
2 个赞

感谢发帖!我只能在没有用户登录的情况下复现错误,并为此添加了修复。您能否更新组件后重试?

3 个赞

是的,现在可以了!谢谢!:heart:

2 个赞

哦,这太棒了!很棒的主题组件,因为它允许对每个类别进行很好的个性化设置,这似乎比官方的类别横幅主题组件要好得多——但我也许会弄错。
从这个意义上说,在帖子的标题中添加类别横幅可能不错。
此外,这个组件甚至可以服务于主页。

2 个赞

您好,感谢分享!

目前没有计划在横幅上添加关闭按钮吗?

1 个赞

我不确定该组件是否能很好地替代类别横幅。有一些注意事项:

  • 加载速度会慢很多
  • 它无法容纳动态内容。例如,当您更改类别名称时,它不会在组件上更新
  • 设置起来也更复杂

话虽如此,我很想看看您将如何使用它:slight_smile:

我现在只有一个使用此组件的用例,那就是在一个社区中提供一个扩展的介绍主题。目前没有计划将其添加到组件中。

@manuel 挖出这个,目前正在 3.1.4 上进行测试。
但是,当我添加特定组时,“显示到组”设置不起作用。尝试了区分大小写,但未显示横幅主题。当设置为空时,它就可以工作。有什么想法吗?

1 个赞

是的,该组件需要一些重构。代码量相当大,而且我自己也不再有使用场景了。我们可以将其标记为未维护吗?

@jrgong 不知道您想设置什么,但也许可以试试这个公告栏组件?它默认样式是条形布局,但只需一点 CSS 并将其放在above-main-container出口,就可以非常相似。需要 HTML 而不是 Markdown。也没有群组功能,但最大的优点是它是可一次性使用的。

3 个赞

@manuel 谢谢你的提示。一旦稳定的 3.2 版本发布,我们就会进行检查。公告栏 tc 与 3.1 不兼容。

1 个赞

我已经应用了标签 :+1:

3 个赞