README.md 2.0 KB

GitBook Sample Plugin

This is a sample plugin for GitBook.

Install it using: $ npm install gitbook-plugin

How GitBook plugin works?

A plugin for GitBook is a node package that can be published on NPM.

package.json

name

The package name should begin with gitbook-plugin-. And if your plugin is a theme, it should begin with gitbook-theme-.

Examples: gitbook-plugin-mixpanel, gitbook-plugin-googleanalytics, gitbook-theme-dark

engine

The package.json should contain a engine field using the standard norm.

"engines": {
    "gitbook": "*"
}

For example if you want your plugin to supports only GitBook version supperior to 0.3.1:

"engines": {
    "gitbook": ">=0.3.1"
}

entry point

The plugin entry point should return an object with some metadata.

"book"

Type: Object Default value: {}

"book.assets"

Type: String Default value: null

Path to the assets folder to copy

"book.js"

Type: Array Default value: []

List of javascript file to add to the html pages (relative to the assets folder).

"book.css"

Type: Array Default value: []

List of css file to add to the html pages (relative to the assets folder).

"book.html"

Type: Object Default value: {}

Map of position -> code, html snippets to add to each page. The code could be a function.

"book.templates"

Type: Object Default value: {}

Templates to override default templates, only use this option if you want to change entirely how the book is rendered.

This object is a map: "name" -> "file", with names:

  • "site": page for a file from the site format
  • "page": page for the page format

"hooks"

Type: Object Default value: {}

Map of "name" -> Function that needs to be called during build process. With names:

  • "init": just after initialization, before generation
  • "finish": after generation and everything is finished

Each hook can return a promise.