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

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


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

文档化你的插件

所有插件都需要良好的文档。用户需要知道插件的功能、如何安装、重要的设置/配置更改以及如何使用它。插件应在两个不同位置进行文档记录:Git 仓库中的 README.md 文件,以及 Plugin 分类下的一个专门主题。

GitHub 文档

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

最小化文档插件的示例:Discourse Data Explorer
文档更完整的插件示例:Discourse SolvedDiscourse OAuth2 BasicDiscourse Ads

插件 README 模板示例

请务必用你的插件具体信息更新由 \u003c\u003e 包围的文本。

## \u003c插件标题\u003e

\u003c插件描述\u003e

## 安装

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

## 如何使用

\u003c解释如何启用插件、必要的配置步骤以及如何使用它\u003e

## 屏幕截图

\u003c如有必要,请包含屏幕截图以演示插件的使用情况\u003e

## 阅读更多

\u003c如果 Meta 主题中有更详细的信息,请包含指向该主题的链接\u003e

## 许可证

\u003c注明你的代码许可证,大多数 Discourse 插件使用 MIT\u003e

Meta 文档

GitHub 文档倾向于简短和“直奔主题”,而 Meta 文档是你可以分享插件全部细节并说服用户为什么应该使用它的地方。最少,你的 Meta 主题应包含插件的简短描述,以及指向插件 GitHub 仓库的链接(以便用户可以安装它)。更完整的文档还将包括详细描述,包括示例用例、详细的使用说明、所有设置和配置选项的文档以及屏幕截图。屏幕截图是关键,因为用户想看到你的插件的作用,而不仅仅是阅读它。一个添加了身份验证提供程序的插件可能只需要 1 张截图,而一个添加了新界面或进行重大更改的插件应该有相当多的截图。

Meta 文档通常比 GitHub 更具个人色彩,每位插件作者都有自己的文档风格。无论你选择哪种风格,请确保它清晰、易读且有条理。根据需要使用标题,注释屏幕截图以解释复杂交互,并确保格式一致。避免写成一个巨大的段落的诱惑。

更新你的文档

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

给插件添加了新功能?请务必留出时间记录下来。
多次回答了同一个问题?考虑在你的 Meta 主题中添加一个常见问题解答 (FAQ) 部分。
已知问题很难修复?在你的主题中详细说明,以便用户知道会发生什么。

支持你的插件

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

最后,Discourse 本身也在不断发展。虽然你的插件今天可能运行完美,但明天可能会发生一些变化而导致它中断。请务必跟上 Discourse 开发的最新动态,以便在更改影响你的插件时,你能及时更新插件以支持最新版本的 Discourse。


系列中的更多内容

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


本文档是版本控制的 - 在 github 上建议更改。

24 个赞

Just finished reading this guide and wanted to say how well written it is!

Have you considered writing a book Robin? You should! If you write one on customising and creating plugins for Discourse I will be the first to buy it :smiley: :smiley: :smiley:

5 个赞

Hello, is there any advanced explanations to what can be done with Discourse plugins?
For instance:

  • can a plugin modify the database ?
  • can you connect to an API and define custom functions by categories, etc ?
  • also, not sure I understand the difference between a plugin and a component.

I have some requirements for my own Discourse and I would like to know how much development will be required to add these functionalities.

1 个赞

A plugin can modify any code in Discourse core. You are free to add database migrations, query APIs, call functions, or anything you want!

Theme components are meant for front end functionality.

4 个赞

You might describe them in dev for some more specific answers.