||||\n-|-|-|\n:discourse2: | 摘要 | 旋转编辑器占位符 (Rotating Composer Placeholder) 为 Discourse 编辑器添加了动态、旋转的占位符文本,每次打开编辑器时显示不同的提示。\n:hammer_and_wrench: | 仓库链接 | \u003chttps://github.com/Ethsim12/discourse-rotating-composer-placeholder\u003e\n:open_book: | 初次接触 Discourse 主题? | Discourse 主题使用入门指南\n\n[wrap=theme-install-button repoUrl="https://github.com/Ethsim12/discourse-rotating-composer-placeholder/tree/main\" repoName="Rotating Composer Placeholder"]\n安装此主题组件\n[/wrap]\n\n[quote]\n由于这是由我维护的非官方主题组件,\n#支持、#bug、UX 和 Feature 请求可以在 Meta 上的此主题中提出。\n\n[/quote]\n\n—\n\n### 功能\n\n- 每次打开编辑器时轮换编辑器占位符文本\n- 适用于:\n - 回复\n - 新主题编辑器\n- 可通过主题组件设置完全配置\n- 无需插件\n- 仅客户端(安全轻量)\n- 使用现代 api-initializers\n\n—\n\n## 安装\n\n1. 在 Discourse 管理后台,前往:\n 管理 → 外观 → 主题和组件 → 组件 → 3 个点\n\n2. 点击 安装。\n\n3. 选择 从 git 仓库。\n\n4. 粘贴此仓库 URL 并点击 安装。\n\n—\n\n## 启用主题组件\n\n安装主题组件不会自动激活它。\n您必须将其附加到一个主题上。\n\n1. 前往:\n 管理 → 外观 → 主题和组件 → 组件 → Rotating Composer Placeholder\n\n2. 点击您的活动主题\n (例如:“Default”、“Desktop”或您的自定义主题)。\n\n3. 按下绿色勾选框。\n\n4. 刷新您的浏览器。\n\n启用后,该组件将立即应用于该主题。\n\n—\n\n## 配置组件\n\n1. 仍在主题组件页面内。\n\n2. 编辑 rotating_placeholders 列表。\n\n示例值:\n\n- 你尝试了什么?包括重现步骤。\n- 每次回复一个想法。如果是新问题,请开启新主题。\n- 请包括:预期结果、实际结果以及任何错误。\n- 提示:将日志粘贴在 ```三个反引号``` 内。\n\n注意:\n\n- 列表中的每个条目都将成为一个可能的占位符。\n- 空条目将被忽略。\n- 如果列表为空,将使用默认占位符。\n\n—\n\n### 已知限制\n\n- 仅 UI 增强\n- 不影响帖子内容\n- 每次打开编辑器时占位符会轮换\n- 未来编辑器重构可能需要微小的选择器更新\n\n—\n\n### 兼容性\n\n- 专为现代 Discourse 版本设计\n- 推荐最低版本:Discourse 3.2+\n- 仅使用受支持的主题 API\n\n\u003cbr\u003e\n\n\u003e:discourse2: 由 discourse.org 托管?\n主题组件在 Discourse Standard、Business 和 Enterprise 套餐中可用。\n\n-------------------------"
您能分享一些用例示例吗?
我认为这些示例很好地展示了用例。在撰写消息时,有很多因素需要考虑。如果你只放一个,它很快就会被忽略。如果你把所有这些都放进去,没有人会阅读其中任何一个。每次放一个不同的,都会增加有人阅读和考虑其中一个的可能性。
你也可以放一些有趣的“彩蛋”。
哦,对了,我甚至没看到那些例子。

谢谢!我发现的一个很好的额外好处是,该组件也能与富文本编辑器完美配合——占位符在其中也能正确轮换。
因为它挂钩到编辑器生命周期而不是特定于编辑器的内部结构,所以它不依赖于仅限 Markdown 的选择器,这有助于使其在不同的编辑器模式下保持兼容。
如果 Discourse 在未来再次重构编辑器,这应该有望使需要修改的范围保持相当小。
我实际上想用它让我的一个论坛上的所有内容都变得有趣……
“你到底怎么了?看不懂吗???”
“一个不搜索就发帖的人和一个懒鬼有什么区别?”
“如果你要报告一个错误,请先确保它不是一个蜘蛛纲动物。”
“一只未负载的燕子的空速是多少?”
不客气!![]()
特定于类别的占位符真是个好主意——我可以看到它在“支持/错误”与“一般聊天”类别中特别有用,因为你想让用户看到的提示是完全不同的。
在实现方面,撰写器上下文通常提供足够的信号来干净地完成此操作:
-
新主题:根据撰写器模型中选择的
categoryId进行判断 -
回复:从主题上下文中推导出类别
因此,一个可能的 v1 可以是这样的:
-
一个主题设置,将
category_id映射到占位符列表 -
如果没有找到类别匹配项,则回退到全局的
rotating_placeholders
如果你还记得你正在考虑的现有组件,我很想看看链接——否则我很乐意将其作为一个功能请求添加到这里并衡量兴趣(如果它已经存在,则避免重复工作)。
另外——你的“全部有趣”列表正是我所设想的那种混乱的善意 ![]()
(我可能仍然会混入一些严肃的,这样偶尔有用的提醒就会溜进来!)
谢谢!这是一个非常有用的链接。
那个组件(“主题模板占位符文本”)与这个组件的作用略有不同:它使用分类主题模板作为占位符(因此占位符是特定于分类的,但它本质上是模板内容)。
这个主题组件每次打开编辑器时都会循环显示一个简短提示列表(它也适用于回复和新主题)。因此,如果我们想要按分类循环列表,并以全局列表作为备用——特别是对于“支持/错误”与“一般聊天”——那么“特定于分类的占位符”仍然是一个有用的补充。
但是,如果某人的目标是专门“将我的分类模板显示为占位符”,那么另一个主题组件(TC)已经很好地解决了这个问题。