summaryrefslogtreecommitdiffstats
path: root/lib/plugins/registry.js
diff options
context:
space:
mode:
authorSamy Pesse <samypesse@gmail.com>2016-02-16 15:53:12 +0100
committerSamy Pesse <samypesse@gmail.com>2016-02-16 15:53:12 +0100
commit702db46f20d2b613540901311708cf4e49d95690 (patch)
treecbc8f3811fad341d534d1af4bfff6e8cc92bec6a /lib/plugins/registry.js
parent327d0bf5c52982a5a20967c8435aff9b60ed509d (diff)
downloadgitbook-702db46f20d2b613540901311708cf4e49d95690.zip
gitbook-702db46f20d2b613540901311708cf4e49d95690.tar.gz
gitbook-702db46f20d2b613540901311708cf4e49d95690.tar.bz2
Add base for plugin linking/installation
Diffstat (limited to 'lib/plugins/registry.js')
-rw-r--r--lib/plugins/registry.js38
1 files changed, 38 insertions, 0 deletions
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
+};