diff options
author | Samy Pesse <samypesse@gmail.com> | 2016-10-13 00:18:47 +0200 |
---|---|---|
committer | Samy Pesse <samypesse@gmail.com> | 2016-10-13 00:18:47 +0200 |
commit | ba56801352359e606e261b1fc066af4e394c47c9 (patch) | |
tree | 20c26cfd18f30858baf7527f3720e9011e3b6f57 /packages/gitbook-plugin-fontsettings | |
parent | 48ee0e35b0a9f77cfc66b2ec35a45e487020c847 (diff) | |
download | gitbook-ba56801352359e606e261b1fc066af4e394c47c9.zip gitbook-ba56801352359e606e261b1fc066af4e394c47c9.tar.gz gitbook-ba56801352359e606e261b1fc066af4e394c47c9.tar.bz2 |
Add base for new fontsettings plugin
Diffstat (limited to 'packages/gitbook-plugin-fontsettings')
9 files changed, 157 insertions, 0 deletions
diff --git a/packages/gitbook-plugin-fontsettings/.gitignore b/packages/gitbook-plugin-fontsettings/.gitignore new file mode 100644 index 0000000..ef47881 --- /dev/null +++ b/packages/gitbook-plugin-fontsettings/.gitignore @@ -0,0 +1,31 @@ +# Logs +logs +*.log + +# Runtime data +pids +*.pid +*.seed + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directory +# Deployed apps should consider commenting this line out: +# see https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git +node_modules + +# vim swapfile +*.swp + +# Plugin assets +_assets/plugin.js diff --git a/packages/gitbook-plugin-fontsettings/.npmignore b/packages/gitbook-plugin-fontsettings/.npmignore new file mode 100644 index 0000000..a0e53cf --- /dev/null +++ b/packages/gitbook-plugin-fontsettings/.npmignore @@ -0,0 +1,2 @@ +# Publish assets on NPM +!_assets/plugin.js diff --git a/packages/gitbook-plugin-fontsettings/index.js b/packages/gitbook-plugin-fontsettings/index.js new file mode 100644 index 0000000..e542ae8 --- /dev/null +++ b/packages/gitbook-plugin-fontsettings/index.js @@ -0,0 +1,10 @@ + +module.exports = { + blocks: { + + }, + + hooks: { + + } +}; diff --git a/packages/gitbook-plugin-fontsettings/package.json b/packages/gitbook-plugin-fontsettings/package.json new file mode 100644 index 0000000..c11e23d --- /dev/null +++ b/packages/gitbook-plugin-fontsettings/package.json @@ -0,0 +1,28 @@ +{ + "name": "gitbook-plugin-fontsettings", + "description": "Let readers controls the font size", + "main": "index.js", + "browser": "./_assets/plugin.js", + "version": "4.0.0", + "dependencies": { + "gitbook-core": "4.0.0" + }, + "devDependencies": { + "gitbook-plugin": "4.0.0" + }, + "engines": { + "gitbook": ">=3.0.0" + }, + "scripts": { + "build-js": "gitbook-plugin build ./src/index.js ./_assets/plugin.js", + "prepublish": "npm run build-js" + }, + "homepage": "https://github.com/GitbookIO/gitbook", + "repository": { + "type": "git", + "url": "https://github.com/GitbookIO/gitbook.git" + }, + "bugs": { + "url": "https://github.com/GitbookIO/gitbook/issues" + } +}
\ No newline at end of file diff --git a/packages/gitbook-plugin-fontsettings/src/actions/font.js b/packages/gitbook-plugin-fontsettings/src/actions/font.js new file mode 100644 index 0000000..9034701 --- /dev/null +++ b/packages/gitbook-plugin-fontsettings/src/actions/font.js @@ -0,0 +1,25 @@ + +const TYPES = { + INCREASE: 'font/increase', + DECREASE: 'font/decrease', + RESET: 'font/reset' +}; + +function increase() { + return { type: TYPES.INCREASE }; +} + +function decrease() { + return { type: TYPES.DECREASE }; +} + +function reset() { + return { type: TYPES.RESET }; +} + +module.exports = { + TYPES, + increase, + decrease, + reset +}; diff --git a/packages/gitbook-plugin-fontsettings/src/components/FontButton.js b/packages/gitbook-plugin-fontsettings/src/components/FontButton.js new file mode 100644 index 0000000..f1ea78b --- /dev/null +++ b/packages/gitbook-plugin-fontsettings/src/components/FontButton.js @@ -0,0 +1,16 @@ +const GitBook = require('gitbook-core'); +const { React } = GitBook; + +const FontButton = React.createClass({ + render() { + return ( + <GitBook.Button> + <GitBook.Icon id="font"/> + </GitBook.Button> + ); + } +}); + +module.exports = GitBook.connect(FontButton, (state) => { + return { font: state.font }; +}); diff --git a/packages/gitbook-plugin-fontsettings/src/index.js b/packages/gitbook-plugin-fontsettings/src/index.js new file mode 100644 index 0000000..6ef7ba9 --- /dev/null +++ b/packages/gitbook-plugin-fontsettings/src/index.js @@ -0,0 +1,13 @@ +const GitBook = require('gitbook-core'); +const FontButton = require('./components/FontButton'); +const font = require('./actions/font'); +const reduce = require('./reducers'); + +module.exports = GitBook.createPlugin({ + activate: (dispatch, getState, { Components }) => { + // Dispatch initialization actions + dispatch(Components.registerComponent(FontButton, { role: 'toolbar:buttons:left' })); + }, + actions: { font }, + reduce +}); diff --git a/packages/gitbook-plugin-fontsettings/src/reducers/font.js b/packages/gitbook-plugin-fontsettings/src/reducers/font.js new file mode 100644 index 0000000..fff582d --- /dev/null +++ b/packages/gitbook-plugin-fontsettings/src/reducers/font.js @@ -0,0 +1,29 @@ +const GitBook = require('gitbook-core'); +const { Record } = GitBook.Immutable; + +const { TYPES } = require('../actions/font'); + +const FontState = Record({ + fontSize: 1 +}); + +module.exports = (state = FontState(), action) => { + switch (action.type) { + + case TYPES.RESET: + return FontState(); + + case TYPES.INCREASE: + return state.merge({ + fontSize: state.fontSize + 1 + }); + + case TYPES.DECREASE: + return state.merge({ + fontSize: state.fontSize + 1 + }); + + default: + return state; + } +}; diff --git a/packages/gitbook-plugin-fontsettings/src/reducers/index.js b/packages/gitbook-plugin-fontsettings/src/reducers/index.js new file mode 100644 index 0000000..64d60c9 --- /dev/null +++ b/packages/gitbook-plugin-fontsettings/src/reducers/index.js @@ -0,0 +1,3 @@ +const GitBook = require('gitbook-core'); + +module.exports = GitBook.createReducer('font', require('./font')); |