diff options
Diffstat (limited to 'lib/plugins')
-rw-r--r-- | lib/plugins/findInstalled.js | 27 | ||||
-rw-r--r-- | lib/plugins/loadForBook.js | 2 |
2 files changed, 25 insertions, 4 deletions
diff --git a/lib/plugins/findInstalled.js b/lib/plugins/findInstalled.js index 5e13c79..2259230 100644 --- a/lib/plugins/findInstalled.js +++ b/lib/plugins/findInstalled.js @@ -1,7 +1,9 @@ var readInstalled = require('read-installed'); var Immutable = require('immutable'); +var path = require('path'); var Promise = require('../utils/promise'); +var fs = require('../utils/fs'); var Plugin = require('../models/plugin'); var PREFIX = require('../constants/pluginPrefix'); @@ -56,9 +58,28 @@ function findInstalled(folder) { }); } - return Promise.nfcall(readInstalled, folder, options) - .then(function(data) { - onPackage(data, true); + // Search for gitbook-plugins in node_modules folder + var node_modules = path.join(folder, 'node_modules'); + + // List all folders in node_modules + return fs.readdir(node_modules) + .then(function(modules) { + return Promise.serie(modules, function(module) { + // Not a gitbook-plugin + if (!validateId(module)) { + return Promise(); + } + + // Read gitbook-plugin package details + var module_folder = path.join(node_modules, module); + return Promise.nfcall(readInstalled, module_folder, options) + .then(function(data) { + onPackage(data, true); + }); + }); + }) + .then(function() { + // Return installed plugins return results; }); } diff --git a/lib/plugins/loadForBook.js b/lib/plugins/loadForBook.js index c1f19d0..c4acb5f 100644 --- a/lib/plugins/loadForBook.js +++ b/lib/plugins/loadForBook.js @@ -22,7 +22,7 @@ function loadForBook(book) { // (aka pre-installed plugins) installed = installed.filter(function(plugin) { return ( - plugin.getDepth() > 1 || + plugin.getDepth() > 0 || requirements.has(plugin.getName()) ); }); |