多个设置与文档不符,存在UI Bug

我才刚开始使用 Discourse,所以也许我遗漏了显而易见的东西,但我认为不是。我使用的是为开源项目托管的实例,所以不知道我的选项是否有限,或者发生了什么。

缺失的设置

UI 错误

  • 插件菜单仅在 Chrome 无痕模式下显示。Firefox(包括无痕模式)不显示,如下所示。


    下方为 Chrome 无痕模式

    已解决……AdBlocker)

  • Discord 聊天集成“Discord”按钮没有反应,并且下方有一个奇怪的滚动条。点击按钮时,开发者模式中没有采取任何操作或错误。

  • 创建类别时,“添加必需的标签组”按钮在“类别保存后”才会生效

1 个赞

卸载你的广告拦截器 :rofl:

机器人功能在 Discord UI 上,而不是 Discourse 上。也许他们改变了工作方式?

这些设置在我们的一些托管套餐中是隐藏的。

“> 移除你的广告拦截器

这似乎解决了插件菜单的问题。谢谢!

Webhook 功能在 Discord UI 上,而不是 Discourse。也许他们改变了它的工作方式?

我知道如何从 Discord 获取 Webhook(它没有改变)……但我需要将 Webhook 地址添加到 Discourse 的某个地方,以便它可以发送到 Discord。”

这些设置在我们的一些托管套餐中是隐藏的。

这真令人失望。我想在页面上添加一个 WidgetBot crate(Discord 集成),这比 (Deprecated) Display a "Discord Widget" in a dropdown button 提供的解决方案要好得多。

<script src="https://cdn.jsdelivr.net/npm/@widgetbot/crate@3" async defer>
  new Crate({
    server: '299881420891881473',
    channel: '355719584830980096',
  })
</script>

这只是很简单的一段代码。手动添加他们的源 JavaScript 不起作用。

我猜没有其他方法可以启用这些选项了?

也许可以有一个请求流程,看看源代码是否安全,然后将其添加到托管实例中?或者允许添加,因为 JavaScript 是在客户端运行的,而不是在主机上运行的?

1 个赞

正确的前进方式是创建一个 Theme component 来实现你想要的功能。这样的组件可以将第三方 JS 作为第一方资产进行分发,这样更安全并且兼容 CSP。

我最近的一个例子是 https://github.com/discourse/discourse-orgchart,它在其 assets 下分发了 3 个不同的 JS 库,并且在 CSP 下运行良好。

2 个赞

好的,这为我指明了正确的方向。我之前对通过 settings.yml 进行扩展感到困惑,但现在开始明白了。这似乎是一个相关的例子:discourse-mermaid-theme-component/settings.yml at fa43854e66becf43626063e33dde29f636933d1f · discourse/discourse-mermaid-theme-component · GitHub

顺便说一句,我很感谢你的回复!

如果你愿意,通过用户界面一个非常简单的方法就是将 https://cdn.jsdelivr.net/npm/@widgetbot/crate@3 的内容粘贴到一个脚本标签中,例如:

<script>
// 将 https://cdn.jsdelivr.net/npm/@widgetbot/crate@3 的全部内容粘贴在这里
</script>
<script>
  new Crate({
    server: '299881420891881473',
    channel: '355719584830980096',
  })
</script>

不幸的是,这并没有奏效。

通过主题扩展也不起作用。:confused:

所以,现在我的插件菜单可以正常工作了……但似乎Discourse Voting没有包含在内。这是故意的吗?我以为官方插件都会默认包含。

并非所有官方插件都包含在所有托管计划中

3 个赞