diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-12-22 10:18:38 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-22 10:18:38 +0100 |
commit | 194ebc3da9641ff96f083f9d8ab43c2d27944f9a (patch) | |
tree | c50988f32ccf18df93ae7ab40be78e9459642818 /packages/gitbook-plugin/src/create.js | |
parent | 64ccb6b00b4b63fa0e516d4e35351275b34f8c07 (diff) | |
parent | 16af264360e48e8a833e9efa9ab8d194574dbc70 (diff) | |
download | gitbook-194ebc3da9641ff96f083f9d8ab43c2d27944f9a.zip gitbook-194ebc3da9641ff96f083f9d8ab43c2d27944f9a.tar.gz gitbook-194ebc3da9641ff96f083f9d8ab43c2d27944f9a.tar.bz2 |
Merge pull request #1543 from GitbookIO/dream
React for rendering website with plugins
Diffstat (limited to 'packages/gitbook-plugin/src/create.js')
-rw-r--r-- | packages/gitbook-plugin/src/create.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/packages/gitbook-plugin/src/create.js b/packages/gitbook-plugin/src/create.js new file mode 100644 index 0000000..31edb85 --- /dev/null +++ b/packages/gitbook-plugin/src/create.js @@ -0,0 +1,61 @@ +const fs = require('fs-extra'); +const path = require('path'); +const GITBOOK_VERSION = require('../package.json').version; + +const TEMPLATE_DIR = path.resolve(__dirname, '../template'); + +/** + * Create a new plugin + * @param {String} outputDir + * @param {String} spec.title + * @param {String} spec.name + * @param {String} spec.desc + * @param {Array} spec.keywords + */ +function create(outputDir, spec) { + const pkg = { + 'title': `${spec.title}`, + 'name': `gitbook-plugin-${spec.name}`, + 'description': `${spec.desc}`, + 'version': '0.0.0', + 'main': 'index.js', + 'browser': './_assets/plugin.js', + 'ebook': './_assets/plugin.js', + 'dependencies': { + 'gitbook-core': '^' + GITBOOK_VERSION + }, + 'devDependencies': { + 'gitbook-plugin': '^' + GITBOOK_VERSION, + 'eslint': '3.7.1', + 'eslint-config-gitbook': '1.4.0' + }, + 'engines': { + 'gitbook': '>=4.0.0-alpha.0' + }, + 'scripts': { + 'lint': 'eslint ./', + 'build-website': 'gitbook-plugin build ./src/index.js ./_assets/plugin.js', + 'prepublish': 'npm run build-website', + 'test': 'gitbook-plugin test && npm run lint' + }, + 'homepage': `${spec.github}`, + 'keywords': spec.categories.map(category => `gitbook:${category}`), + 'repository': { + 'type': 'git', + 'url': `${spec.github}.git` + }, + 'bugs': { + 'url': `${spec.github}/issues` + } + }; + + fs.copySync(TEMPLATE_DIR, outputDir, { + clobber: true + }); + + fs.outputJsonSync(path.resolve(outputDir, 'package.json'), pkg, { + spaces: 2 + }); +} + +module.exports = create; |