summaryrefslogtreecommitdiffstats
path: root/docs/plugins
diff options
context:
space:
mode:
authorSamy Pesse <samypesse@gmail.com>2016-02-29 21:50:48 +0100
committerSamy Pesse <samypesse@gmail.com>2016-02-29 21:50:48 +0100
commitc08e5ce62c30cb8d014151448bfe6da6b5a47fcf (patch)
treefd9504c00d46786aebe2c65c6a95fa62edb363a7 /docs/plugins
parentec353e179dedf1ebf1ab6e54f6217a88d087ea75 (diff)
downloadgitbook-c08e5ce62c30cb8d014151448bfe6da6b5a47fcf.zip
gitbook-c08e5ce62c30cb8d014151448bfe6da6b5a47fcf.tar.gz
gitbook-c08e5ce62c30cb8d014151448bfe6da6b5a47fcf.tar.bz2
Improve structure of doc
Diffstat (limited to 'docs/plugins')
-rw-r--r--docs/plugins/README.md26
-rw-r--r--docs/plugins/create.md63
-rw-r--r--docs/plugins/hooks.md0
-rw-r--r--docs/plugins/testing.md22
4 files changed, 111 insertions, 0 deletions
diff --git a/docs/plugins/README.md b/docs/plugins/README.md
new file mode 100644
index 0000000..ff56b7b
--- /dev/null
+++ b/docs/plugins/README.md
@@ -0,0 +1,26 @@
+# Plugins
+
+Plugins are the best way to extend GitBook functionalities (ebook and website). There exist plugins to do a lot of things: bring math formulas display support, track visits using Google Analytic, etc.
+
+### How to find plugins?
+
+Plugins can be easily searched on [plugins.gitbook.com](https://plugins.gitbook.com).
+
+
+### How to install a plugin?
+
+Once you find a plugin that you want to install, you need to add it to your `book.json`:
+
+```
+{
+ "plugins": ["myPlugin", "anotherPlugin"]
+}
+```
+
+You can also specify a specific version using: `"myPlugin@0.3.1"`. By default GitBook will resolve the latest version of the plugin compatbile with the current GitBook version.
+
+Plugins are automatically installed on [GitBook.com](https://www.gitbook.com). Locally, run `gitbook install` to install and prepare all plugins for your books.
+
+### Configuring plugins
+
+PLugins specific configurations are stored in `pluginsConfig`. You have to refer to the documentation of the plugin itself for details about the available options.
diff --git a/docs/plugins/create.md b/docs/plugins/create.md
new file mode 100644
index 0000000..787b191
--- /dev/null
+++ b/docs/plugins/create.md
@@ -0,0 +1,63 @@
+# Create and publish a plugin
+
+A GitBook plugin is a node package published on NPM that follow a defined convention.
+
+## Structure
+
+#### package.json
+
+The `package.json` is a manifest format for describing **Node.js modules**. GitBook plugins are built on top of Node modules. It declares dependencies, version, ownership, and other information required to run a plugin in GitBook. This document describes the schema in detail.
+
+```
+{
+ "name": "gitbook-plugin-mytest",
+ "version": "0.0.1",
+ "description": "This is my first GitBook plugin",
+ "engines": {
+ "gitbook": ">1.x.x"
+ }
+}
+```
+
+You can learn more about `package.json` from the [NPM documentation](https://docs.npmjs.com/files/package.json).
+
+The **package name** must begin with `gitbook-plugin-` and the **package engines** should contains `gitbook`.
+
+#### index.js
+
+The `index.js` is main entry point of your plugin runtime:
+
+```js
+module.exports = {
+ // Map of hooks
+ hooks: {},
+
+ // Map of new blocks
+ blocks: {},
+
+ // Map of new filters
+ filters: {}
+};
+```
+
+## Publish your plugin
+
+GitBook plugins can be published on [NPM](https://www.npmjs.com).
+
+To publish a new plugin, you need to create an account on [npmjs.com](https://www.npmjs.com) then publish it from the command line:
+
+```
+$ npm publish
+```
+
+## Private plugins
+
+Private plugins can be hosted on GitHub and included using `git` urls:
+
+```
+{
+ "plugins": [
+ "git+https://github.com/MyCompany/mygitbookplugin.git#1.0.0"
+ ]
+}
+```
diff --git a/docs/plugins/hooks.md b/docs/plugins/hooks.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/docs/plugins/hooks.md
diff --git a/docs/plugins/testing.md b/docs/plugins/testing.md
new file mode 100644
index 0000000..bf00da2
--- /dev/null
+++ b/docs/plugins/testing.md
@@ -0,0 +1,22 @@
+# Testing your plugin
+
+### Testing your plugin locally
+
+Testing your plugin on your book before plushing it is possible using [npm link](https://docs.npmjs.com/cli/link).
+
+In the plugin's folder, run:
+
+```
+$ npm link
+```
+
+The nin your book's folder:
+
+```
+$ npm link gitbook-plugin-<plugin's name>
+```
+
+### Unit testing on Travis
+
+[gitbook-tester](https://github.com/todvora/gitbook-tester) makes it easy to write **Node.js/Mocha** unit tests for your plugins. Using [Travis.org](https://travis.org), tests can be run on each commits/tags.
+