summaryrefslogtreecommitdiffstats
path: root/packages/gitbook-plugin/src/create.js
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-12-22 10:18:38 +0100
committerGitHub <noreply@github.com>2016-12-22 10:18:38 +0100
commit194ebc3da9641ff96f083f9d8ab43c2d27944f9a (patch)
treec50988f32ccf18df93ae7ab40be78e9459642818 /packages/gitbook-plugin/src/create.js
parent64ccb6b00b4b63fa0e516d4e35351275b34f8c07 (diff)
parent16af264360e48e8a833e9efa9ab8d194574dbc70 (diff)
downloadgitbook-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.js61
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;