如何用自己的内容替换 Discourse <header>?

我想在网站的某个部分集成 Discourse 论坛。但我希望显示自己网站的页头和导航栏(包括菜单和用户菜单),而不是 Discourse 默认的样式,这样整个网站的外观和体验才能保持一致。

目前已有解决方案吗?

如果没有,推荐的实现方式是什么?是通过主题和 CSS 隐藏 <header> 元素,然后在 header.html 中插入自己的内容吗?感觉这样不太优雅。

您可以使用已有的 #theme-component 来添加额外的页眉,并通过 CSS 修改以实现颜色或样式的匹配。

建议您不要删除或隐藏现有的 Discourse 页眉,否则会导致许多问题。

我的网站已经有了自己的用户菜单(头像等),并且对 Discourse 使用了单点登录(SSO),因此它们共享相同的用户数据。如果某个页面出现两个用户菜单,用户体验会非常糟糕;而如果我仅仅在论坛部分省略自己的菜单,用户体验同样会很差,因为两者会不一致。

我是否无法用我自己设计的菜单来替换 Discourse 的汉堡菜单和用户菜单,并将 Discourse 的链接(例如分类、收件箱)整合进去?

Discourse 的汉堡菜单和用户菜单都包含重要链接。

如果您只想让用户永远无法访问以下内容:
账户设置
个人资料偏好
通知
消息
以及更多,您可以通过 CSS 隐藏 Discourse 菜单。

有好几种。我认为如果你尝试添加主题,其中一两个应该可用,但你也可以在这里查看:

https://meta.discourse.org/search?context=topic&context_id=132740&q=%23theme%20header&skip_context=true

谢谢,Jay。我会去看看的。

这并非不可能……你可以用 CSS 隐藏默认的头部,然后在主题中添加自定义头部(注意:你需要复制导航内容,无法直接引入你网站的代码)……但这样做要么会丢失大量默认功能,要么需要重新实现这些功能。通知功能就是一个重要的例子。

我们发现,从长远来看,更好的做法是使用主题 API 添加内容,并尽量让 Discourse 的头部样式与现有网站保持一致,而不是从头开始替换整个头部。