summaryrefslogtreecommitdiffstats
path: root/lib/output/generatePages.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/output/generatePages.js')
-rw-r--r--lib/output/generatePages.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/output/generatePages.js b/lib/output/generatePages.js
new file mode 100644
index 0000000..73c5c09
--- /dev/null
+++ b/lib/output/generatePages.js
@@ -0,0 +1,36 @@
+var Promise = require('../utils/promise');
+var generatePage = require('./generatePage');
+
+/**
+ Output all pages using a generator
+
+ @param {Generator} generator
+ @param {Output} output
+ @return {Promise<Output>}
+*/
+function generatePages(generator, output) {
+ var pages = output.getPages();
+ var logger = output.getLogger();
+
+ // Is generator ignoring assets?
+ if (!generator.onPage) {
+ return Promise(output);
+ }
+
+ return Promise.reduce(pages, function(out, page) {
+ var file = page.getFile();
+
+ logger.debug.ln('generate page "' + file.getPath() + '"');
+
+ return generatePage(out, page)
+ .then(function(resultPage) {
+ return generator.onPage(out, resultPage);
+ })
+ .fail(function(err) {
+ logger.error.ln('error while generating page "' + file.getPath() + '":');
+ throw err;
+ });
+ }, output);
+}
+
+module.exports = generatePages;