summaryrefslogtreecommitdiffstats
path: root/lib/generate/plugin.js
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2014-09-17 15:02:22 +0200
committerSamy Pessé <samypesse@gmail.com>2014-09-17 15:02:22 +0200
commitd69cc746472684195f5b628d0ee4dc79e10f59e1 (patch)
treec668eba1bc444a9d1e0f6a461a0759d234a1eb35 /lib/generate/plugin.js
parentbe0a4f08e9a45efc4766632a787adbb187e931af (diff)
parentf83874a9ca5877c9b5417e1603df9c9d3ffe19f2 (diff)
downloadgitbook-d69cc746472684195f5b628d0ee4dc79e10f59e1.zip
gitbook-d69cc746472684195f5b628d0ee4dc79e10f59e1.tar.gz
gitbook-d69cc746472684195f5b628d0ee4dc79e10f59e1.tar.bz2
Merge pull request #440 from GitbookIO/feature/ebookplugins
Apply plugins to ebook generation
Diffstat (limited to 'lib/generate/plugin.js')
-rw-r--r--lib/generate/plugin.js29
1 files changed, 17 insertions, 12 deletions
diff --git a/lib/generate/plugin.js b/lib/generate/plugin.js
index ca34923..e699a26 100644
--- a/lib/generate/plugin.js
+++ b/lib/generate/plugin.js
@@ -65,8 +65,9 @@ Plugin.prototype.normalizeResource = function(resource) {
};
// Return resources
-Plugin.prototype._getResources = function() {
- var book = this.infos.book;
+Plugin.prototype._getResources = function(base) {
+ base = base || "book";
+ var book = this.infos[base];
// Nothing specified, fallback to default
if (!book) {
@@ -84,12 +85,10 @@ Plugin.prototype._getResources = function() {
};
// Normalize resources and return them
-Plugin.prototype.getResources = function() {
+Plugin.prototype.getResources = function(base) {
var that = this;
-
-
- return this._getResources()
+ return this._getResources(base)
.then(function(resources) {
_.each(RESOURCES, function(resourceType) {
@@ -133,10 +132,14 @@ Plugin.prototype.callHook = function(name, data) {
};
// Copy plugin assets fodler
-Plugin.prototype.copyAssets = function(out) {
+Plugin.prototype.copyAssets = function(out, options) {
var that = this;
+ options = _.defaults(options || {}, {
+ base: "book"
+ });
- return this.getResources().get('assets')
+ return this.getResources(options.base)
+ .get('assets')
.then(function(assets) {
// Assets are undefined
if(!assets) return false;
@@ -149,8 +152,6 @@ Plugin.prototype.copyAssets = function(out) {
};
-
-
// Normalize a list of plugin name to use
Plugin.normalizeNames = function(names) {
// Normalize list to an array
@@ -181,7 +182,11 @@ Plugin.normalizeNames = function(names) {
};
// Extract data from a list of plugin
-Plugin.fromList = function(names, root, generator) {
+Plugin.fromList = function(names, root, generator, options) {
+ options = _.defaults(options || {}, {
+ assetsBase: "book"
+ });
+
var failed = [];
// Load plugins
@@ -198,7 +203,7 @@ Plugin.fromList = function(names, root, generator) {
// Get resources of plugins
return Q.all(_.map(plugins, function(plugin) {
- return plugin.getResources();
+ return plugin.getResources(options.assetsBase);
}))
// Extract resources out
// css, js, etc ...