diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-05-02 09:56:32 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-05-02 09:56:32 +0200 |
commit | fabf4f0c0ab1ecd089d7f242940b2b9396cd9b9c (patch) | |
tree | 55a5c35ded7dfd41c6f364ee4d76e0644069bda4 | |
parent | d467888d6aacde1a29c7eebfab6b91a0c586d6ca (diff) | |
download | gitbook-fabf4f0c0ab1ecd089d7f242940b2b9396cd9b9c.zip gitbook-fabf4f0c0ab1ecd089d7f242940b2b9396cd9b9c.tar.gz gitbook-fabf4f0c0ab1ecd089d7f242940b2b9396cd9b9c.tar.bz2 |
Enable livereload plugin when serving content
-rw-r--r-- | lib/cli/serve.js | 4 | ||||
-rw-r--r-- | lib/models/book.js | 10 | ||||
-rw-r--r-- | lib/modifiers/config/addPlugin.js | 20 | ||||
-rw-r--r-- | lib/modifiers/config/index.js | 4 | ||||
-rw-r--r-- | lib/modifiers/index.js | 3 | ||||
-rw-r--r-- | lib/parse/parseConfig.js | 6 | ||||
-rw-r--r-- | lib/plugins/listAll.js | 4 |
7 files changed, 46 insertions, 5 deletions
diff --git a/lib/cli/serve.js b/lib/cli/serve.js index 628f591..1c380e5 100644 --- a/lib/cli/serve.js +++ b/lib/cli/serve.js @@ -4,6 +4,7 @@ var tinylr = require('tiny-lr'); var Parse = require('../parse'); var Output = require('../output'); +var ConfigModifier = require('../modifiers').Config; var options = require('./options'); var getBook = require('./getBook'); @@ -26,6 +27,9 @@ function generateBook(args, kwargs) { .then(function() { return Parse.parseBook(book) .then(function(resultBook) { + // Enable livereload plugin + resultBook = ConfigModifier.addPlugin(resultBook, 'livereload'); + return Output.generate(Generator, resultBook, { root: outputFolder }); diff --git a/lib/models/book.js b/lib/models/book.js index f960df1..cd6cfad 100644 --- a/lib/models/book.js +++ b/lib/models/book.js @@ -212,6 +212,16 @@ Book.prototype.setReadme = function(readme) { }; /** + Set the configuration for this book + + @param {Config} + @return {Book} +*/ +Book.prototype.setConfig = function(config) { + return this.set('config', config); +}; + +/** Change log level @param {String} level diff --git a/lib/modifiers/config/addPlugin.js b/lib/modifiers/config/addPlugin.js new file mode 100644 index 0000000..938b686 --- /dev/null +++ b/lib/modifiers/config/addPlugin.js @@ -0,0 +1,20 @@ + +/** + Add a plugin to a book's configuration + + @param {Book} book + @param {String} plugin + @param {String} version (optional) + @return {Book} +*/ +function addPlugin(book, plugin, version) { + var config = book.getConfig(); + var plugins = config.getValue('plugins', []); + + plugins = plugins.push('livereload'); + config = config.setValue('plugins', plugins); + + return book.setConfig(config); +} + +module.exports = addPlugin; diff --git a/lib/modifiers/config/index.js b/lib/modifiers/config/index.js new file mode 100644 index 0000000..3c84f94 --- /dev/null +++ b/lib/modifiers/config/index.js @@ -0,0 +1,4 @@ + +module.exports = { + addPlugin: require('./addPlugin') +}; diff --git a/lib/modifiers/index.js b/lib/modifiers/index.js index ed09e31..ad24604 100644 --- a/lib/modifiers/index.js +++ b/lib/modifiers/index.js @@ -1,4 +1,5 @@ module.exports = { - Summary: require('./summary') + Summary: require('./summary'), + Config: require('./config') }; diff --git a/lib/parse/parseConfig.js b/lib/parse/parseConfig.js index 5200de2..3ab64b7 100644 --- a/lib/parse/parseConfig.js +++ b/lib/parse/parseConfig.js @@ -1,3 +1,5 @@ +var is = require('is'); + var Promise = require('../utils/promise'); var Config = require('../models/config'); @@ -43,6 +45,10 @@ function parseConfig(book) { values = validateConfig(values); + if (is.string(values.plugins)) { + values.plugins = values.plugins.split(','); + } + var config = Config.create(file, values); return book.set('config', config); }); diff --git a/lib/plugins/listAll.js b/lib/plugins/listAll.js index 65b8d7f..6863030 100644 --- a/lib/plugins/listAll.js +++ b/lib/plugins/listAll.js @@ -12,10 +12,6 @@ var DEFAULT_PLUGINS = require('../constants/defaultPlugins'); @return {OrderedMap<Plugin>} */ function listAll(plugins) { - if (is.string(plugins)) { - plugins = new Immutable.List(plugins.split(',')); - } - // Convert to an ordered map plugins = plugins.map(function(plugin) { if (is.string(plugin)) { |