diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-04-22 22:58:37 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-04-22 22:58:37 +0200 |
commit | a162af5a75453a6ecb818447540cbffdc774715f (patch) | |
tree | 5355932bda4aa7a6f6bf934625389a2362aa5987 /lib/output/generateBook.js | |
parent | fb0ea4610d7835a14c91fd57268ae3d809062f8d (diff) | |
download | gitbook-a162af5a75453a6ecb818447540cbffdc774715f.zip gitbook-a162af5a75453a6ecb818447540cbffdc774715f.tar.gz gitbook-a162af5a75453a6ecb818447540cbffdc774715f.tar.bz2 |
Add base for calling hook on page/global
Diffstat (limited to 'lib/output/generateBook.js')
-rw-r--r-- | lib/output/generateBook.js | 47 |
1 files changed, 45 insertions, 2 deletions
diff --git a/lib/output/generateBook.js b/lib/output/generateBook.js index fb03418..c35719b 100644 --- a/lib/output/generateBook.js +++ b/lib/output/generateBook.js @@ -1,4 +1,5 @@ var Output = require('../models/output'); +var Config = require('../models/config'); var Promise = require('../utils/promise'); var callHook = require('./callHook'); @@ -28,7 +29,7 @@ var generatePages = require('./generatePages'); @param {Book} book @param {Object} options - @return {Promise} + @return {Promise<Output>} */ function generateBook(generator, book, options) { options = generator.Options(options); @@ -39,8 +40,50 @@ function generateBook(generator, book, options) { .then(preparePlugins) .then(preparePages) .then(prepareAssets) + + .then( + callHook.bind(null, + 'config', + function(output) { + var book = output.getBook(); + var config = book.getConfig(); + var values = config.getValues(); + + return values.toJS(); + }, + function(output, result) { + var book = output.getBook(); + var config = book.getConfig(); + + config = Config.updateValues(config, result); + book = book.set('config', config); + return output.set('book', book); + } + ) + ) + + .then(callHook.bind(null, 'init')) + + .then(function(output) { + if (!generator.onInit) { + return output; + } + + return generator.onInit(output); + }) + .then(generateAssets.bind(null, generator)) - .then(generatePages.bind(null, generator)); + .then(generatePages.bind(null, generator)) + + .then(callHook.bind(null, 'finish:before')) + + .then(function(output) { + if (!generator.onFinish) { + return output; + } + + return generator.onFinish(output); + }); } module.exports = generateBook; |