Concord:Discourse 的 Discord 风格主题

:information_source: 摘要 一个自托管的开源 Discord 替代品:将 Discourse 转变为基于频道的社区,包含文本、语音和论坛频道。
:hammer_and_wrench: 代码仓库 github.com/awesomerobot/concord
:question: 安装指南 如何安装主题或主题组件
:open_book: Discourse 主题新手? 使用 Discourse 主题的入门指南

安装此主题

当您使用 Discourse 运营自己的独立站点时,您可以选择您的政策,允许您的站点公开查看,并发布内容以便搜索引擎和爬虫索引。此外,您还可以根据自己的喜好对其进行扩展和重新设计!

Concord 将一切都变为频道,并在自定义侧边栏中显示所有频道:

  • 分类 (Categories) 是论坛频道
  • 聊天频道 (Chat channels) 是文本频道
  • 语音房间 (Voice rooms)(来自语音插件)是语音频道
  • 标签 (Tags) 可选地也可以作为标签频道

页眉变为频道页眉,显示当前频道的名称、描述和操作,私信 (DM) 拥有独立的视图,右侧有一个成员列表侧边栏显示谁在线,而全站页面(关于、群组、徽章、管理后台等)则移入单独的菜单。

:warning: 这极大地改变了 Discourse 的布局,因此它可能不兼容每个插件或主题组件。它还依赖于核心的一些非常近期的更改,因此在安装之前请确保您已更新 Discourse(您需要 2026 年 10 月 15 日或之后的构建版本)。

设置

Concord 需要更改一些站点设置,因此安装后请在您的 Discourse 站点设置中检查以下内容。

作为管理员,您可以通过将此内容粘贴到您的 Discourse URL 末尾来同时查看所有这些设置:

/admin/site_settings/category/all_results?filter=any:navigation_menu|default_homepage|chat_enabled|chat_allowed_groups|enable_public_channels|voice_allowed_groups|voice_create_room_allowed_groups|enable_user_status|tagging_enabled

:information_source: 请注意,您需要从即将推出的更改中启用语音功能才能看到相关设置,/admin/config/upcoming-changes

站点设置 应设置为
navigation menu sidebar(必需,频道列表就是侧边栏)
chat enabled 如果您想要文本频道和私信,则设为 enabled
chat allowed groups 应该能够聊天的群组,包括 anonymous_users 以允许未登录用户查看
enable public channels enabled,以便工作人员可以创建文本频道
voice enabled 如果您想要语音频道,则设为 enabled
voice allowed groups 应该能够加入语音频道的群组
voice create room allowed groups 应该能够创建语音频道的群组
enable user status 可选,状态会显示在用户面板和页眉中的头像上
tagging enabled 可选,仅当开启主题的 include tags 设置时才需要
default homepage 可选,但您现在可以将其设置为您选择的任何聊天频道

创建频道

站点名称旁边的 + 会打开一个“创建频道”模态框。它只提供您有权创建的频道类型:

  • Forum (论坛) 创建一个分类(任何可以创建分类的人)
  • Text (文本) 创建一个聊天频道(工作人员)
  • Voice (语音) 创建一个语音房间(voice create room allowed groups 设置)

每种类型都可以对一组群组设为私有。您可以稍后通过侧边栏中频道的 … 菜单中的隐私 (Privacy) 选项更改此设置。

在 Discourse 中,聊天频道的权限来自分类,因此在此主题中创建的每个文本频道都会获得一个空的“后备”分类,嵌套在一个名为 chat-channels 的父分类内。这些分类在频道列表中是隐藏的,所以您不需要担心它们……但不要在其中发布主题(普通用户不允许这样做)!当您从 … 侧边栏菜单中删除一个文本频道时,其后备分类也会被删除。

组织侧边栏频道

频道可以分组到可折叠的部分中。管理员可以通过部分标题上的 … 菜单创建、重命名、重新排序和删除部分,并通过每个频道上的 … 菜单在它们之间移动频道。不在任何部分中的项目会按字母顺序列在顶部。

部分是全站范围的,因此每个人看到的布局都相同。更改会在其他人下次加载页面时显示。

主题设置

名称 描述
include tags 将用户的侧边栏标签列为频道(默认关闭)
include chat channels 将聊天频道列为文本频道(默认开启)
ai conversations link 在站点名称旁边显示一个用于 AI 机器人对话的按钮,供可以使用它们的人使用(需要启用 Chatbot 的 Discourse AI)
remember last channel 当某人回到您的站点时,重新打开他们上次所在的频道
chat container category 保存文本频道后备分类的分类 Slug,默认为 chat-channels
sidebar sections 各个部分及其中的频道,您可以从侧边栏管理这些,这里只是数据存储的位置
member list roles 在成员列表顶部显示为角色的群组,按顺序排列(默认为管理员和版主)

其他注意事项

  • 每个人都能看到他们有权限访问的所有频道,目前还没有办法让人们从自己的列表中隐藏个别频道。静音频道仍然像往常一样用于通知。
  • 打开文本频道即加入该频道,就像 Discord 一样。如果有人离开一个频道,它仍会列在列表中,因此静音是降低噪音的更好选择。
  • 子分类不会在频道列表中拥有自己的位置,而是作为框显示在其父级论坛频道的顶部。该主题通常建议采用扁平结构,但您可以在创建后编辑论坛频道来选择父级分类。
  • 从聊天自身的设置页面删除具有后备分类的频道是被隐藏的,因此它们总是从频道的 … 菜单中删除(这也清理了分类)。如果频道以其他方式被删除,例如通过 API,后备分类会被留下,您需要自行移除它。
  • 聊天始终以全页形式打开,绝不在抽屉中。
  • 成员列表中的“在线”意味着在过去几分钟内在站点的任何地方活跃,而不仅仅是在聊天中。隐藏自己存在状态的人保持隐藏状态。
  • 在拥有大量频道的站点上,只有前 500 个文本频道会加载到列表中。同样,私有聊天频道的成员列表预先加载其前 250 名成员,其余的在您滚动时加载。
  • 将语音频道设为私有时会添加您所选择群组的当前成员(最多 200 人)。后来加入这些群组的人不会自动获得访问权限,因为语音房间没有群组权限。您将不得不手动邀请额外成员。
  • 如果您稍后切换回非 Concord 模式,您的文本频道的后备分类仍将在那里(并且在 /categories 上可见),因此您可能希望删除它们。

在这里我们仍然可以做很多事情,但如果您正在寻找一个可以自托管的 Discord 替代品(或者在我们的付费 discourse.org 托管上使用!),这是一个坚实的基础。

一如既往,欢迎反馈和建议!

10 个赞