| 摘要 | Discourse 自定义帖子按钮 将 Discourse 帖子中的链接转换为样式化按钮。 | |
| 代码仓库 | github.com/koloki-co/discourse-custom-post-button | |
| 安装指南 | 安装主题或主题组件 | |
| Discourse 主题新手? | Discourse 主题使用入门指南 |
安装此主题组件
这是一个由 Koloki Ltd 维护的社区主题组件。它不是官方的 Discourse 组件。目前处于 Alpha 阶段,可能存在错误。请在 GitHub 仓库 中报告错误或提出功能需求。
截图
按钮
特定用例:“通过私信向我们提问”按钮
功能
- 使用
[wrap]将主题或帖子中的普通链接转换为按钮。 - 提供 TC 级别可配置的默认背景色、边框圆角、内边距、字体粗细、文本颜色以及悬停不透明度;否则使用您的站点默认设置。
- 允许单个按钮覆盖默认背景色。
- 支持在按钮旁边显示说明性文本。
- 保持底层内容为普通链接,因此按钮可以打开外部页面或内部 Discourse 路由(如
/new-message)。
重要提示:如果安装了此 TC,您论坛上的任何用户都可以创建这些按钮。若要限制特定用户才能使用按钮功能,则需要一个完整的插件。不过,实际上,用户需要知道它已安装以及如何创建按钮,因此我怀疑很少有人会真正知道如何操作。您也可以使用 Watched Words 来过滤包含
[wrap=custom-button]的帖子以进行审批,从而限制该功能的使用。
安装
在 管理 > 外观 > 主题与组件 中,打开 组件 选项卡,选择 安装,然后选择 从 Git 仓库 URL 安装。使用以下地址:
https://github.com/koloki-co/discourse-custom-post-button
安装后,将该组件添加到每个需要启用它的活动主题中。
用法
基本按钮
将使用 TC 设置中的默认按钮颜色
[wrap=custom-button][您的自定义按钮文本](https://example.com)[/wrap]
单个按钮颜色设置
[wrap=custom-button color=#7CC146][您的自定义按钮文本](https://example.com)[/wrap]
按钮后跟说明性文本
[wrap=custom-button][您的自定义按钮文本](https://example.com)[/wrap]
[wrap=text-after-button]额外的说明性文本[/wrap] (在新行上)
向群组发送私信
(注:这使用了 Discourse 内置功能来打开带有预填文本的编辑器——该功能部分并非来自主题组件,我只是用它来演示一个可能的用例。需要群组设置允许向该群组发送私信。)
[wrap=custom-button][向我们提问](/new-message?groupname=somegroup&title=Aask%20Us&body=Please%20type%20your%20question%20here.)[/wrap]
使用群组的 slugified name 而不是其“完整名称”,并对参数值进行 URL 编码。群组的 谁可以向该群组发送消息? 设置仍然决定谁可以打开已寻址的编辑器,未登录的访客将被要求登录。
设置
| 设置 | 用途 |
|---|---|
button_default_color |
默认按钮背景和边框颜色 |
button_border_radius |
按钮圆角半径 |
button_padding |
按钮标签周围的间距 |
button_font_weight |
按钮标签粗细 |
button_text_color |
按钮标签颜色 |
button_hover_opacity |
悬停时按钮的不透明度 |
该组件还暴露了一个 svg_icons 设置,用于可用的主题图标,但目前它不会在帖子按钮中插入图标。如果有需求,我会添加此功能。
备注
- 该组件仅更改呈现方式。按钮仍然是链接,目标权限保持不变。
- 电子邮件客户端和其他不加载活动 Discourse 主题的环境可能显示底层链接,而不带按钮样式。
- 该组件根据 MIT 许可证 授权。
该组件源自在 如何在主题帖子中嵌入按钮 中讨论的同样有用的 [wrap] 模式。


