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.
A plugin manifest package.json
can also contain details about the required configuration. The configuration schema is defined in the gitbook
field of the package.json
(This field follow the JSON-Schema guidelines):
{
"name": "gitbook-plugin-mytest",
"version": "0.0.1",
"description": "This is my first GitBook plugin",
"engines": {
"gitbook": ">1.x.x"
},
"gitbook": {
"properties": {
"myConfigKey": {
"type": "string",
"default": "it's the default value",
"description": "It defines my awesome config!"
}
}
}
}
You can learn more about package.json
from the NPM documentation.
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:
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.
To publish a new plugin, you need to create an account on 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": [
"myplugin@git+https://github.com/MyCompany/mygitbookplugin.git#1.0.0"
]
}
Author: snowdreams1006
Url: https://snowdreams1006.github.io/gitbook-official/en/plugins/create.html
Source: snowdreams1006's Gitbook
This article was originally published in「snowdreams1006's Gitbook」,Reproduced please indicate the source, thank you for cooperation!