diff options
author | Samy Pesse <samypesse@gmail.com> | 2016-02-16 15:53:12 +0100 |
---|---|---|
committer | Samy Pesse <samypesse@gmail.com> | 2016-02-16 15:53:12 +0100 |
commit | 702db46f20d2b613540901311708cf4e49d95690 (patch) | |
tree | cbc8f3811fad341d534d1af4bfff6e8cc92bec6a /lib/plugins | |
parent | 327d0bf5c52982a5a20967c8435aff9b60ed509d (diff) | |
download | gitbook-702db46f20d2b613540901311708cf4e49d95690.zip gitbook-702db46f20d2b613540901311708cf4e49d95690.tar.gz gitbook-702db46f20d2b613540901311708cf4e49d95690.tar.bz2 |
Add base for plugin linking/installation
Diffstat (limited to 'lib/plugins')
-rw-r--r-- | lib/plugins/plugin.js | 13 | ||||
-rw-r--r-- | lib/plugins/registry.js | 38 |
2 files changed, 40 insertions, 11 deletions
diff --git a/lib/plugins/plugin.js b/lib/plugins/plugin.js index 05fa8ca..7ce29e4 100644 --- a/lib/plugins/plugin.js +++ b/lib/plugins/plugin.js @@ -1,25 +1,16 @@ -var _ = require('lodash'); var path = require('path'); var resolve = require('resolve'); var Promise = require('../utils/promise'); var gitbook = require('../gitbook'); - -var PLUGIN_PREFIX = 'gitbook-plugin-'; - -// Return an absolute name for the plugin (the one on NPM) -function npmId(name) { - if (name.indexOf(PLUGIN_PREFIX) === 0) return name; - return [PLUGIN_PREFIX, name].join(''); -} - +var registry = require('./registry'); function BookPlugin(book, pluginId) { this.book = book; this.log = this.book.log; this.id = pluginId; - this.npmId = npmId(pluginId); + this.npmId = registry.npmId(pluginId); this.baseDir; this.packageInfos = undefined; diff --git a/lib/plugins/registry.js b/lib/plugins/registry.js new file mode 100644 index 0000000..6b1cddb --- /dev/null +++ b/lib/plugins/registry.js @@ -0,0 +1,38 @@ +var npm = require('npm'); + +var PLUGIN_PREFIX = 'gitbook-plugin-'; + +// Return an absolute name for the plugin (the one on NPM) +function npmId(name) { + if (name.indexOf(PLUGIN_PREFIX) === 0) return name; + return [PLUGIN_PREFIX, name].join(''); +} + +// Return a plugin ID 9the one on GitBook +function pluginId(name) { + return name.replace(PLUGIN_PREFIX, ''); +} + +// Validate an NPM plugin ID +function validateId(name) { + return name.indexOf(PLUGIN_PREFIX) === 0; +} + +// Link a plugin for use in a specific book +function linkPlugin(book, pluginPath) { + book.log('linking', pluginPath); +} + +// Install a plugin in a book +function installPlugin(book, pluginId) { + book.log('installing plugin', pluginId); +} + +module.exports = { + npmId: npmId, + pluginId: pluginId, + validateId: validateId, + + link: linkPlugin, + install: installPlugin +}; |