summaryrefslogtreecommitdiffstats
path: root/lib/plugin.js
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2015-01-19 16:53:20 +0100
committerSamy Pessé <samypesse@gmail.com>2015-01-19 16:53:20 +0100
commitad233c0d8e242957288a9edb3a2f358e21a45a7d (patch)
tree4e1a910a23f9fce5807f5bfbee64f2b8bd468543 /lib/plugin.js
parent41c3db4c049c98f1a6fc5af9068757306ef26214 (diff)
downloadgitbook-ad233c0d8e242957288a9edb3a2f358e21a45a7d.zip
gitbook-ad233c0d8e242957288a9edb3a2f358e21a45a7d.tar.gz
gitbook-ad233c0d8e242957288a9edb3a2f358e21a45a7d.tar.bz2
Improve plugins installation to prevent installation of default plugins
Diffstat (limited to 'lib/plugin.js')
-rw-r--r--lib/plugin.js74
1 files changed, 0 insertions, 74 deletions
diff --git a/lib/plugin.js b/lib/plugin.js
index d1ec08d..6767aed 100644
--- a/lib/plugin.js
+++ b/lib/plugin.js
@@ -4,7 +4,6 @@ var semver = require("semver");
var path = require("path");
var url = require("url");
var fs = require("./utils/fs");
-var npmi = require('npmi');
var resolve = require('resolve');
var pkg = require("../package.json");
@@ -31,9 +30,6 @@ var Plugin = function(book, name) {
// Type of plugins resources
Plugin.RESOURCES = ["js", "css"];
-// Default plugins added to each books
-Plugin.defaults = ["mathjax"];
-
// Load from a name
Plugin.prototype.load = function(name, baseDir) {
try {
@@ -154,74 +150,4 @@ Plugin.prototype.copyAssets = function(out, options) {
}, _.constant(false));
};
-
-// Install a list of plugin
-Plugin.install = function(root, plugins) {
- // Normalize list of plugins
- plugins = Plugin.normalizeList(plugins);
-
- // Install plugins one by one
- return _.reduce(plugins, function(prev, plugin) {
- return prev.then(function() {
- var fullname = "gitbook-plugin-"+plugin.name;
- console.log("Install plugin", plugin.name, "from npm ("+fullname+") with version", (plugin.version || "*"));
- return Q.nfcall(npmi, {
- 'name': fullname,
- 'version': plugin.version,
- 'path': root,
- 'npmLoad': {
- 'loglevel': 'silent',
- 'loaded': false,
- 'prefix': root
- }
- });
- });
- }, Q());
-};
-
-// Normalize a list of plugins to use
-Plugin.normalizeList = function(plugins) {
- // Normalize list to an array
- plugins = _.isString(plugins) ? plugins.split(",") : (plugins || []);
-
- // Divide as {name, version} to handle format like "myplugin@1.0.0"
- plugins = _.map(plugins, function(plugin) {
- var parts = plugin.split("@");
- return {
- 'name': parts[0],
- 'version': parts[1] // optional
- }
- });
-
- // List plugins to remove
- var toremove = _.chain(plugins)
- .filter(function(plugin) {
- return plugin.name.length > 0 && plugin.name[0] == "-";
- })
- .map(function(plugin) {
- return plugin.name.slice(1);
- })
- .value();
-
- // Merge with defaults
- plugins = _.chain(plugins)
- .concat(_.map(Plugin.defaults, function(plugin) {
- return { 'name': plugin }
- }))
- .uniq()
- .value();
-
- // Build final list
- plugins = _.filter(plugins, function(plugin) {
- return !_.contains(toremove, plugin.name) && !(plugin.name.length > 0 && plugin.name[0] == "-");
- });
-
- return plugins;
-};
-
-// Normalize a list of plugin name to use
-Plugin.normalizeNames = function(plugins) {
- return _.pluck(Plugin.normalizeList(plugins), "name");
-};
-
module.exports = Plugin;