开发 Discourse 插件 - 第 7 部分 - 发布你的插件

上一教程:Developing Discourse Plugins - Part 6 - Add acceptance tests


你已经 创建了插件,将其 上传到了 GitHub,并且 添加了测试。太棒了!但问题是,还没有其他人知道它。

文档化你的插件

所有插件都需要良好的文档。用户需要知道插件的功能、安装方法、重要的设置/配置更改以及使用方法。插件的文档应记录在两个不同的位置:git 仓库中的 README.md 文件和 #plugin 分类下的专用主题中。

GitHub 文档

GitHub 上的 README.md 文件很重要,因为用户访问你的仓库时会默认显示它。至少,你的 readme 应包含插件的标题和简短描述。更完整的 readme 还应包括安装说明、更详细的描述、基本使用说明、许可证,以及(如果适用)截图。如果在插件的 Meta 主题中包含其他说明,请务必包含指向该主题的链接。

最少文档记录的插件示例:Discourse Data Explorer
文档更完善的插件示例:Discourse SolvedDiscourse OAuth2 BasicDiscourse Ads

Sample plugin README template

请务必用你的插件具体信息更新被 <> 包围的文本。

## <插件标题>

<插件描述>

## 安装

请遵循 [插件安装指南](https://meta.discourse.org/t/install-a-plugin/19157)。

## 如何使用

<解释如何启用插件、必要的配置步骤以及使用方法>

## 截图

<如有必要,请包含截图以演示插件的使用>

## 阅读更多

<如果 Meta 主题中详细说明了更多信息,请包含指向该主题的链接>

## 许可证

<注明你的代码许可证,大多数 Discourse 插件使用 MIT 许可证>

Meta 文档

GitHub 文档往往简短且“直奔主题”,而 Meta 文档则是你分享插件详细信息并说服用户为何应该使用它的地方。至少,你的 Meta 主题应包含插件的简短描述,以及指向 GitHub 上插件仓库的链接(以便用户安装它)。更完整的文档还应包括包含示例用例的详细描述、详细的使用说明、所有设置和配置选项的文档,以及截图。截图至关重要,因为用户希望看到插件的实际效果,而不仅仅是阅读文字。添加身份验证提供程序的插件可能只需要 1 张截图,而添加新界面或进行重大更改的插件则应该有更多截图。

Meta 文档往往比 GitHub 文档更具个人色彩,每位插件作者都有自己的文档风格。无论你选择何种风格,都要确保清晰、易读且有条理。适当使用标题,对截图进行注释以解释复杂的交互,并确保格式一致。避免写成单个巨大的段落。

更新你的文档

在编写初始文档后,保持其更新非常重要。

为插件添加了新功能?务必抽出时间记录它。
多次回答相同的问题?考虑在 Meta 主题中添加常见问题解答(FAQ)部分。
存在已知但难以修复的问题?在主题中详细说明,以便用户了解预期情况。

支持你的插件

发布插件及其文档后,发现其有用的站点管理员可能会在其站点上安装并使用它。这种使用需要插件开发者的持续支持。你需要回答站点管理员的问题,帮助他们使用你的插件。对你来说显而易见的东西,对其他人来说可能不清楚,因此你需要更新代码和/或文档以使其更清晰。你可能会收到功能请求,你需要决定是否添加这些功能。

最后,Discourse 本身也在不断发展。虽然你的插件今天可能运行完美,但明天可能会有某些更改导致其失效。请务必关注 Discourse 的开发动态,以便在更改影响你的插件时,能够更新插件以支持最新版本的 Discourse。


系列中的更多内容

第 1 部分:插件基础
第 2 部分:插件出口点
第 3 部分:站点设置
第 4 部分:git 设置
第 5 部分:管理界面
第 6 部分:验收测试
第 7 部分:本主题


本文档受版本控制 - 建议在 GitHub 上 提出更改建议。

24 个赞

刚读完这篇指南,不得不说写得真棒!

Robin,你有没有考虑过写一本书?你应该写!如果你写一本关于自定义和创建 Discourse 插件的书,我会是第一个购买的人 :smiley: :smiley: :smiley:

5 个赞

你好,关于 Discourse 插件能实现哪些高级功能,是否有更深入的说明?
例如:

  • 插件能否修改数据库?
  • 能否连接 API 并按类别定义自定义函数等?
  • 另外,我不太清楚插件(plugin)和组件(component)之间的区别。

我对自己部署的 Discourse 有一些具体需求,想了解要实现这些功能需要多少开发工作量。

1 个赞

插件可以修改 Discourse 核心中的任何代码。您可以自由地添加数据库迁移、调用查询 API、执行函数,或做任何您想做的事!

主题组件旨在用于前端功能。

4 个赞

你可以在 Dev 中描述一下,以获取更具体的解答。