update plugin create.rst

This commit is contained in:
fiag 2015-04-03 23:08:49 +08:00
parent 0b3e431fc8
commit a6ee542738

View file

@ -1,16 +1,16 @@
编写 NodeBB 插件 编写 NodeBB 插件
========================== ==========================


这么说,您要给 NodeBB 写插件,棒极了!在编写插件前,你应该了解一些有帮助的东西。 要写 NodeBB 插件,棒极了!在这之前,你需要知道一些东西。


和 WordPress 类似NodeBB 的插件搭建在 NodeBB 的钩子系统上。钩子系统,通过可控制的方式,把部分 NodeBB 功能开放给插件开发者,可以允许插件更改内容,或者在条件触发时执行指定的行为。 和 WordPress 类似NodeBB 的插件搭建在 NodeBB 的钩子系统上。钩子系统,通过可控制的方式,把 NodeBB 的部分功能开放给插件开发者,允许插件更改内容,或者触发确定的行为。


更多信息请查看全部 :doc:`钩子列表 <hooks>`。 更多信息请查看全部 :doc:`钩子列表 <hooks>`。


过滤器、动作 过滤器、动作
------------------ ------------------


有两类钩子:**过滤器** 和 **执行器**。 有两种类型的钩子:**过滤器** 和 **执行器**。


**过滤器** 作用于内容。当内容在 NodeBB 中传递时,你可以进行修改。例如,可以用过滤器修改帖子内容,比如把帖子中出现的所有“苹果”更改为“橙子”。类似地,可以用过滤器美化内容(比如代码过滤器),或者移除粗口(粗口过滤器)。 **过滤器** 作用于内容。当内容在 NodeBB 中传递时,你可以进行修改。例如,可以用过滤器修改帖子内容,比如把帖子中出现的所有“苹果”更改为“橙子”。类似地,可以用过滤器美化内容(比如代码过滤器),或者移除粗口(粗口过滤器)。


@ -29,9 +29,6 @@
.. code:: json .. code:: json


{ {
"id": "my-plugin",
"name": "我的酷毙插件",
"description": "您插件的描述",
"url": "您插件的地址或者 Github 代码库", "url": "您插件的地址或者 Github 代码库",
"library": "./my-plugin.js", "library": "./my-plugin.js",
"staticDirs": { "staticDirs": {
@ -44,10 +41,12 @@
{ "hook": "filter:post.save", "method": "filter" }, { "hook": "filter:post.save", "method": "filter" },
{ "hook": "action:post.save", "method": "emailme" } { "hook": "action:post.save", "method": "emailme" }
], ],
"languages": "path/to/languages" "languages": "path/to/languages",
} "nbbpm: {
{ "compatibility": "^0.7.0" }
}
}


``id`` 属性是唯一的名称,用来标识插件。


``library`` 属性是库相对插件包目录的路径。NodeBB 会自动加载库(如果插件处于激活状态)。 ``library`` 属性是库相对插件包目录的路径。NodeBB 会自动加载库(如果插件处于激活状态)。


@ -66,6 +65,9 @@


``languages`` 属性是可选的。通过它可以设置插件或主题的多语言支持。建议和核心代码相似的目录结构,例如:``language/en_GB/myplugin.json``。 ``languages`` 属性是可选的。通过它可以设置插件或主题的多语言支持。建议和核心代码相似的目录结构,例如:``language/en_GB/myplugin.json``。


``nbbpm`` 属性是一个对象,包含 NodeBB 包管理器的信息。

* ``compatibility`` 指定了插件兼容的 NodeBB 版本。


编写插件库 编写插件库
------------------ ------------------
@ -142,3 +144,13 @@ v0.0.5 版中,把插件放入 ``/plugins`` 目录来进行"安装",依然是
.. code:: .. code::


./nodebb reset plugin="nodebb-plugin-im-broken" ./nodebb reset plugin="nodebb-plugin-im-broken"

不使用 `nodebb` 脚本,也可以禁用插件,你可以使用下面的 node 调用:

.. code::

node app.js --reset --plugins
.. code::

node app.js --reset --plugin="nodebb-plugin-im-broken"