用于帖子编辑器修改的插件或主题组件?

说实话,我不知道该把这条内容发到哪里,所以如果这个分类不合适,请随意移动。

最近,我一直在思考如何在 Discourse 中优化用户体验,以便在帖子编辑器中更方便地添加 ruby 标签。对于不了解的人来说,这个标签在书写日语时可以用来标注读音,例如将“日本語”转换为 <ruby>日<rt>に</rt>本<rt>ほん</rt>語<rt>ご</rt></ruby>。然而,即使在我们日语学习社区中,许多人也不知道它的存在,或者因为手动为长句或长词组添加标签太繁琐而懒得使用。(上面那个单词的例子就是从 <ruby>日<rt>に</rt>本<rt>ほん</rt>語<rt>ご</rt></ruby> 生成的。)

因此,我想在帖子编辑器菜单中添加一个选项,其操作方式与超链接选项非常相似。它仍然会有两个输入框,但这两个输入框将用于分别输入正文和读音,而不是链接名称和 URL。由于它只是向编辑器插入原生(Discourse 支持的)HTML,因此不会与服务器进行任何交互。我可能会进行一些文本解析,让用户能够一次性输入长段文本并自动添加 ruby 标签,而不必逐个字符地处理。

那么问题来了:实现这一功能最好采用主题组件(theme component)、插件(plugin),还是其他方式?此外,是否有办法确保即使 Discourse 核心对编辑器进行了更改,该组件/插件等也不会失效?我相当确定我打算部署此功能的 Discourse 实例是由 Discourse 官方托管的,因此必须兼容这种安装类型。我还需要与那个站点的管理员确认,但我认为一旦功能开发完成,让他们安装应该没有问题(当然,在获得这里的建议后,我会先与他们沟通)。

任何帮助和建议都将不胜感激!

主题组件是解决此问题的最佳方案!无需修改核心代码,我们已有现成的钩子可供添加。

请查看 https://meta.discourse.org/t/composer-help-button/22748(目前它是一个插件,但可以轻松转换为主题组件)

谢谢,我会看一下。确认一下,即使是托管站点也能添加主题组件吗?我只是想确认一下,我使用的网站管理员确实可以安装这个,以免我白费时间。

是的,主题组件可以由管理员在托管站点上安装。通用主题文档可在此处找到:此处。以下是一个主题组件的示例,它在编辑器工具栏中添加了一个按钮:

https://github.com/discourse/DiscoTOC/blob/master/common/header.html#L373-L393