summaryrefslogtreecommitdiffstats
path: root/lib/output
diff options
context:
space:
mode:
authorSamy Pesse <samypesse@gmail.com>2016-04-26 14:12:26 +0200
committerSamy Pesse <samypesse@gmail.com>2016-04-26 14:12:26 +0200
commitbe828cf004056d143c1e46c10ab29cc147fc14f8 (patch)
tree7f7c072eb286cda222ceb5d66f78d2838b16a71f /lib/output
parent1057bb15d3b7250dc541a126754750ec6b8a79a2 (diff)
downloadgitbook-be828cf004056d143c1e46c10ab29cc147fc14f8.zip
gitbook-be828cf004056d143c1e46c10ab29cc147fc14f8.tar.gz
gitbook-be828cf004056d143c1e46c10ab29cc147fc14f8.tar.bz2
Add duration to final log for generation
Diffstat (limited to 'lib/output')
-rw-r--r--lib/output/callPageHook.js14
-rw-r--r--lib/output/generateBook.js6
-rw-r--r--lib/output/generatePage.js13
3 files changed, 25 insertions, 8 deletions
diff --git a/lib/output/callPageHook.js b/lib/output/callPageHook.js
index ed80823..6f6bcbb 100644
--- a/lib/output/callPageHook.js
+++ b/lib/output/callPageHook.js
@@ -1,6 +1,8 @@
var Api = require('../api');
var callHook = require('./callHook');
+var Promise = require('../utils/promise');
+
/**
Call a hook for a specific page
@@ -10,19 +12,21 @@ var callHook = require('./callHook');
@return {Promise<Page>}
*/
function callPageHook(name, output, page) {
- return callHook(
+ return Promise(page);
+
+ /*return callHook(
name,
function(out) {
- return Api.encodePage(output, page);
+ return Api.encodePage(out, page);
},
- function(result) {
- return Api.decodePage(output, page, result);
+ function(out, result) {
+ return Api.decodePage(out, page, result);
},
output
- );
+ );*/
}
module.exports = callPageHook;
diff --git a/lib/output/generateBook.js b/lib/output/generateBook.js
index ca19067..1fe75fd 100644
--- a/lib/output/generateBook.js
+++ b/lib/output/generateBook.js
@@ -33,6 +33,7 @@ var generatePages = require('./generatePages');
*/
function generateBook(generator, book, options) {
options = generator.Options(options);
+ var start = Date.now();
return Promise(
Output.createForBook(book, options)
@@ -117,7 +118,10 @@ function generateBook(generator, book, options) {
.then(function(output) {
var logger = output.getLogger();
- logger.info.ok('generation finished with success!');
+ var end = Date.now();
+ var duration = (end - start)/1000;
+
+ logger.info.ok('generation finished with success in ' + duration.toFixed(1) + 's !');
});
}
diff --git a/lib/output/generatePage.js b/lib/output/generatePage.js
index 113bf22..aa3b376 100644
--- a/lib/output/generatePage.js
+++ b/lib/output/generatePage.js
@@ -4,6 +4,7 @@ var error = require('../utils/error');
var Parse = require('../parse');
var Templating = require('../templating');
var createTemplateEngine = require('./createTemplateEngine');
+var callPageHook = require('./callPageHook');
/**
Prepare and generate HTML for a page
@@ -28,10 +29,13 @@ function generatePage(output, page) {
}));
}
- return Promise(resultPage.getContent())
+ // Call hook "page:before"
+ return callPageHook('page:before', output, resultPage)
// Escape code blocks with raw tags
- .then(parser.page.prepare)
+ .then(function(currentPage) {
+ return parser.page.prepare(currentPage.getContent());
+ })
// Render templating syntax
.then(function(content) {
@@ -49,6 +53,11 @@ function generatePage(output, page) {
// Return new page
.then(function(content) {
return resultPage.set('content', content);
+ })
+
+ // Call final hook
+ .then(function(currentPage) {
+ return callPageHook('page', output, currentPage);
});
});
}