“自定义帖子按钮”主题组件

@staff 成员考虑将此主题移至 Customization > Theme component,因为我无法在那里创建新主题。

:page_facing_up: 摘要 Discourse Custom Post Button 可以将 Discourse 帖子中的链接转换为样式化的按钮。
:hammer_and_wrench: 仓库 github.com/koloki-co/discourse-custom-post-button
:question: 安装指南 安装主题或主题组件
:books: Discourse 主题新手? Discourse 主题使用入门指南

安装此主题组件

这是一个由 Koloki Ltd 维护的社区主题组件。它不是官方的 Discourse 组件。目前处于 Alpha 阶段,因此可能存在错误。请在 GitHub 仓库 中报告错误并请求新功能。

截图

按钮

特定用例:“通过私信提问”按钮

功能

  • 使用 [wrap] 在主题或帖子的任何位置将普通链接转换为按钮。
  • 提供 TC 级别可配置的默认背景颜色、边框半径、内边距、字体粗细、文本颜色和悬停不透明度;否则将使用您的站点默认设置。
  • 允许单个按钮覆盖默认背景颜色。
  • 支持在按钮旁边显示说明性文本。
  • 底层内容保持为普通链接,因此按钮可以打开外部页面或内部 Discourse 路由(例如 /new-message)。

重要提示:如果安装了此 TC,您论坛上的任何用户都可以创建这些按钮。若要限制特定用户才能使用按钮功能,则需要一个完整的插件。然而,在实际操作中,用户需要知道它已安装以及如何创建按钮,因此我怀疑真正知道如何操作的人很少。您也可以使用 Watched Words 来过滤包含 [wrap=custom-button] 的帖子以供审核,从而限制该功能的使用。

安装

Admin > Appearance > Themes & components(管理 > 外观 > 主题与组件)中,打开 Components(组件)选项卡,选择 Install(安装),然后选择 Install from a Git repository URL(从 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] 模式。

3 个赞

你加入 @theme_authors 组了吗?

5 个赞

已发送加入请求,谢谢

2 个赞

我已经批准了你,并立刻把帖子移到了正确的版块 :slight_smile:

1 个赞