轮换作曲家占位符

| | |
|:—|:—|:—|
| :discourse2: | 摘要 | 旋转编辑器占位符 为 Discourse 编辑器添加动态、循环切换的占位符文本,每次打开编辑器时显示不同的提示。
| :hammer_and_wrench: | 仓库链接 | https://github.com/Ethsim12/discourse-rotating-composer-placeholder
| :open_book: | 初次接触 Discourse 主题? | Discourse 主题使用入门指南

安装此主题组件

功能特性

  • 每次打开编辑器时自动轮换占位符文本
  • 适用于:
    • 回复
    • 新建主题编辑器
  • 完全可通过主题组件设置进行配置
  • 无需插件
  • 纯客户端实现(安全且轻量)
  • 使用现代化的 api-initializers

安装步骤

  1. 在 Discourse 管理后台中,依次进入:
    管理 → 外观 → 主题与组件 → 组件 → 三个点菜单

  2. 点击安装

  3. 选择从 Git 仓库安装

  4. 粘贴以下仓库 URL,然后点击安装

启用主题组件

安装主题组件后不会自动激活,
必须将其附加到某个主题上。

  1. 进入:
    管理 → 外观 → 主题与组件 → 组件 → 旋转编辑器占位符

  2. 点击你的活跃主题
    (例如:“默认”、“桌面版”或你的自定义主题)。

  3. 点击绿色勾选框

  4. 刷新浏览器。

启用后,该组件将立即应用于该主题。

配置组件

  1. 仍在主题组件页面内。

  2. 编辑 rotating_placeholders 列表。

示例值:

  • 「你尝试过什么?请包含复现步骤。」
  • 「每条回复只提一个想法。如果是新问题,请新建主题。」
  • 「请包含:预期结果、实际结果以及任何错误信息。」
  • 「提示:请将日志粘贴在 三重重反引号 中。」

注意事项:

  • 列表中的每一项都会成为一个可能的占位符。
  • 空条目将被忽略。
  • 如果列表为空,将使用默认占位符。

已知限制

  • 仅为界面增强
  • 不影响帖子内容
  • 占位符仅在编辑器打开时轮换
  • 未来若编辑器重构,可能需要微调选择器

兼容性

  • 专为现代 Discourse 版本设计
  • 推荐最低版本:Discourse 3.2+
  • 仅使用受支持的主题 API
4 个赞

您能分享一些用例示例吗?

1 个赞

我认为这些示例很好地展示了用例。在撰写消息时,有很多因素需要考虑。如果你只放一个,它很快就会被忽略。如果你把所有这些都放进去,没有人会阅读其中任何一个。每次放一个不同的,都会增加有人阅读和考虑其中一个的可能性。

你也可以放一些有趣的“彩蛋”。

4 个赞

哦,对了,我甚至没看到那些例子。

Game of Thrones: The Walk of Shame

3 个赞

谢谢!我发现的一个很好的额外好处是,该组件也能与富文本编辑器完美配合——占位符在其中也能正确轮换。

因为它挂钩到编辑器生命周期而不是特定于编辑器的内部结构,所以它不依赖于仅限 Markdown 的选择器,这有助于使其在不同的编辑器模式下保持兼容。

如果 Discourse 在未来再次重构编辑器,这应该有望使需要修改的范围保持相当小。

1 个赞

我实际上想用它让我的一个论坛上的所有内容都变得有趣……

“你到底怎么了?看不懂吗???”
“一个不搜索就发帖的人和一个懒鬼有什么区别?”
“如果你要报告一个错误,请先确保它不是一个蜘蛛纲动物。”
“一只未负载的燕子的空速是多少?”

5 个赞

不客气!:slightly_smiling_face:

特定于类别的占位符真是个好主意——我可以看到它在“支持/错误”与“一般聊天”类别中特别有用,因为你想让用户看到的提示是完全不同的。

在实现方面,撰写器上下文通常提供足够的信号来干净地完成此操作:

  • 新主题:根据撰写器模型中选择的 categoryId 进行判断

  • 回复:从主题上下文中推导出类别

因此,一个可能的 v1 可以是这样的:

  • 一个主题设置,将 category_id 映射到占位符列表

  • 如果没有找到类别匹配项,则回退到全局的 rotating_placeholders

如果你还记得你正在考虑的现有组件,我很想看看链接——否则我很乐意将其作为一个功能请求添加到这里并衡量兴趣(如果它已经存在,则避免重复工作)。

另外——你的“全部有趣”列表正是我所设想的那种混乱的善意 :joy:

(我可能仍然会混入一些严肃的,这样偶尔有用的提醒就会溜进来!)

有一个 https://meta.discourse.org/t/topic-template-placeholder-text-theme-component/149053,您可以在其中使用分类模板作为占位符。

2 个赞

谢谢!这是一个非常有用的链接。

那个组件(“主题模板占位符文本”)与这个组件的作用略有不同:它使用分类主题模板作为占位符(因此占位符是特定于分类的,但它本质上是模板内容)。

这个主题组件每次打开编辑器时都会循环显示一个简短提示列表(它也适用于回复和新主题)。因此,如果我们想要按分类循环列表,并以全局列表作为备用——特别是对于“支持/错误”与“一般聊天”——那么“特定于分类的占位符”仍然是一个有用的补充。

但是,如果某人的目标是专门“将我的分类模板显示为占位符”,那么另一个主题组件(TC)已经很好地解决了这个问题。