diff options
author | Samy Pesse <samypesse@gmail.com> | 2016-04-29 23:13:31 +0200 |
---|---|---|
committer | Samy Pesse <samypesse@gmail.com> | 2016-04-29 23:13:31 +0200 |
commit | db1a0aedf88ef467058408a1a607ada182174c33 (patch) | |
tree | 2fac8d40a4be614eda9e376f0b0b0292125a15e4 | |
parent | 01a26fda2596fc7ffefec4a7e0a79d5fc97d44ba (diff) | |
download | gitbook-db1a0aedf88ef467058408a1a607ada182174c33.zip gitbook-db1a0aedf88ef467058408a1a607ada182174c33.tar.gz gitbook-db1a0aedf88ef467058408a1a607ada182174c33.tar.bz2 |
Fix listing of plugins when contains "-"
-rw-r--r-- | lib/api/encodeGlobal.js | 7 | ||||
-rw-r--r-- | lib/json/encodeBook.js | 2 | ||||
-rw-r--r-- | lib/models/config.js | 8 | ||||
-rw-r--r-- | lib/output/ebook/getConvertOptions.js | 2 | ||||
-rw-r--r-- | lib/plugins/__tests__/listAll.js | 17 | ||||
-rw-r--r-- | lib/plugins/listAll.js | 17 |
6 files changed, 37 insertions, 16 deletions
diff --git a/lib/api/encodeGlobal.js b/lib/api/encodeGlobal.js index 073bc13..89cea59 100644 --- a/lib/api/encodeGlobal.js +++ b/lib/api/encodeGlobal.js @@ -1,5 +1,6 @@ var Promise = require('../utils/promise'); var PathUtils = require('../utils/path'); +var fs = require('../utils/fs'); var deprecate = require('./deprecate'); var encodeConfig = require('./encodeConfig'); @@ -15,7 +16,7 @@ var fileToURL = require('../output/helper/fileToURL'); */ function encodeGlobal(output) { var book = output.getBook(); - var fs = book.getContentFS(); + var bookFS = book.getContentFS(); var logger = output.getLogger(); var outputFolder = output.getRoot(); @@ -42,7 +43,7 @@ function encodeGlobal(output) { @return {Promise<Buffer>} */ readFile: function(fileName) { - return fs.read(fileName); + return bookFS.read(fileName); }, /** @@ -52,7 +53,7 @@ function encodeGlobal(output) { @return {Promise<String>} */ readFileAsString: function(fileName) { - return fs.readAsString(fileName); + return bookFS.readAsString(fileName); }, output: { diff --git a/lib/json/encodeBook.js b/lib/json/encodeBook.js index c134312..9bcb6ee 100644 --- a/lib/json/encodeBook.js +++ b/lib/json/encodeBook.js @@ -28,7 +28,7 @@ function encodeBookToJson(book) { }, book: extend({ language: language? language : undefined - }, variables) + }, variables.toJS()) }; } diff --git a/lib/models/config.js b/lib/models/config.js index f4735dd..547007a 100644 --- a/lib/models/config.js +++ b/lib/models/config.js @@ -31,13 +31,7 @@ Config.prototype.getValue = function(keyPath, def) { return def; } - var value = values.getIn(keyPath); - - if (Immutable.Iterable.isIterable(value)) { - value = value.toJS(); - } - - return value; + return values.getIn(keyPath); }; /** diff --git a/lib/output/ebook/getConvertOptions.js b/lib/output/ebook/getConvertOptions.js index 75be364..bc80493 100644 --- a/lib/output/ebook/getConvertOptions.js +++ b/lib/output/ebook/getConvertOptions.js @@ -48,7 +48,7 @@ function getConvertOptions(output) { getPDFTemplate(output, 'footer') ]) .spread(function(headerTpl, footerTpl) { - var pdfOptions = config.getValue('pdf'); + var pdfOptions = config.getValue('pdf').toJS(); return options = extend(options, { '--chapter-mark': String(pdfOptions.chapterMark), diff --git a/lib/plugins/__tests__/listAll.js b/lib/plugins/__tests__/listAll.js index 6da5b8d..71483a7 100644 --- a/lib/plugins/__tests__/listAll.js +++ b/lib/plugins/__tests__/listAll.js @@ -51,4 +51,21 @@ describe('listAll', function() { expect(great.getVersion()).toBe('git+ssh://samy@github.com/GitbookIO/plugin-ga.git'); }); + it('must list from array with -', function() { + var plugins = listAll(['ga', '-great']); + + expect(plugins.size).toBe(7); + + expect(plugins.has('ga')).toBe(true); + expect(plugins.has('great')).toBe(false); + }); + + it('must remove default plugins using -', function() { + var plugins = listAll(['ga', '-search']); + + expect(plugins.size).toBe(6); + + expect(plugins.has('ga')).toBe(true); + expect(plugins.has('search')).toBe(false); + }); }); diff --git a/lib/plugins/listAll.js b/lib/plugins/listAll.js index 8a0fc07..65b8d7f 100644 --- a/lib/plugins/listAll.js +++ b/lib/plugins/listAll.js @@ -31,12 +31,21 @@ function listAll(plugins) { // Extract list of plugins to disable (starting with -) var toRemove = plugins.toList() .filter(function(plugin) { - return plugin.getName()[0] == '-'; + return plugin.getName()[0] === '-'; }) .map(function(plugin) { - return plugin.slice(1); + return plugin.getName().slice(1); }); + // Remove the '-' + plugins = plugins.mapKeys(function(name) { + if (name[0] === '-') { + return name.slice(1); + } else { + return name; + } + }); + // Append default plugins DEFAULT_PLUGINS.forEach(function(pluginName) { if (plugins.has(pluginName)) return; @@ -48,8 +57,8 @@ function listAll(plugins) { }); // Remove plugins - plugins = plugins.filterNot(function(plugin) { - return toRemove.includes(plugin.getName()); + plugins = plugins.filterNot(function(plugin, name) { + return toRemove.includes(name); }); return plugins; |