summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorSamy Pesse <samypesse@gmail.com>2016-09-29 23:53:18 +0200
committerSamy Pesse <samypesse@gmail.com>2016-09-29 23:53:18 +0200
commit1489129407cfd4a562b3fb8f2799acb3b240ee6b (patch)
treeeb78fd46654a9410d066195cbac993df4fb4098f /docs
parentb5c407cf7bdea1a7b0da5044cb036e2753b32de2 (diff)
downloadgitbook-1489129407cfd4a562b3fb8f2799acb3b240ee6b.zip
gitbook-1489129407cfd4a562b3fb8f2799acb3b240ee6b.tar.gz
gitbook-1489129407cfd4a562b3fb8f2799acb3b240ee6b.tar.bz2
Improve Gitbook.connect to accept a mapActionsToProps
Diffstat (limited to 'docs')
-rw-r--r--docs/SUMMARY.md9
-rw-r--r--docs/api/README.md21
-rw-r--r--docs/api/connect.md33
3 files changed, 61 insertions, 2 deletions
diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md
index cf98051..fdddbb9 100644
--- a/docs/SUMMARY.md
+++ b/docs/SUMMARY.md
@@ -41,10 +41,15 @@
* [Test your plugin](plugins/testing.md)
* [Theming](themes/README.md)
+### Plugin Development
+
+* [Introduction](./api/README.md)
+* [Node](./api/node.md)
+* [Connect to the context](./api/connect.md)
+* [Components](./api/components.md)
+
--
* [FAQ](faq.md)
* [Examples](examples.md)
* [Release notes](https://github.com/GitbookIO/gitbook/blob/master/CHANGES.md)
-
-
diff --git a/docs/api/README.md b/docs/api/README.md
index 4349fd4..c3beb6e 100644
--- a/docs/api/README.md
+++ b/docs/api/README.md
@@ -1,3 +1,24 @@
# Plugin Architecture
A GitBook plugin is a NPM package that follow a defined convention.
+
+`gitbook-plugin` is a command line utility to help you create, test and release plugins.
+
+### Bootstrap your first plugin
+
+Install `gitbook-plugin` from NPM:
+
+```
+$ npm install gitbook-plugin -g
+```
+
+Then create your plugin using:
+
+```
+$ gitbook-plugin create
+```
+
+It will prompt you to enter a name and a description.
+
+
+### Publish your plugin
diff --git a/docs/api/connect.md b/docs/api/connect.md
new file mode 100644
index 0000000..740deca
--- /dev/null
+++ b/docs/api/connect.md
@@ -0,0 +1,33 @@
+# Connect to the context
+
+`GitBook.connect(Component, [mapStateToProps], [mapActionsToProps])` connects a react component to the GitBook context.
+
+It does not modify the component class passed to it.
+Instead, it returns a new, connected component class, for you to use.
+
+### `mapStateToProps(state, [ownProps]): stateProps`
+
+If specified, the component will subscribe to GitBook store updates. Any time it updates, `mapStateToProps` will be called. Its result must be a plain object, and it will be merged into the component’s props.
+
+If you omit it, the component will not be subscribed to the GitBook store. If `ownProps` is specified as a second argument, its value will be the props passed to your component, and `mapStateToProps` will be additionally re-invoked whenever the component receives new props (e.g. if props received from a parent component have shallowly changed, and you use the `ownProps` argument, `mapStateToProps` is re-evaluated).
+
+For example to render the title of the current page:
+
+```js
+const GitBook = require('gitbook-core');
+
+let PageTitle = React.createClass({
+ render() {
+ const { page } = this.props;
+ return <h1>{page.title}</h1>;
+ }
+});
+
+function mapStateToProps(state) {
+ return { page: state.page };
+}
+
+PageTitle = GitBook.connect(PageTitle, mapStateToProps);
+```
+
+### `mapActionsToProps(actions, [dispatch])`