diff options
Diffstat (limited to 'lib/output/generatePage.js')
-rw-r--r-- | lib/output/generatePage.js | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/lib/output/generatePage.js b/lib/output/generatePage.js deleted file mode 100644 index 090a870..0000000 --- a/lib/output/generatePage.js +++ /dev/null @@ -1,79 +0,0 @@ -var path = require('path'); - -var Promise = require('../utils/promise'); -var error = require('../utils/error'); -var timing = require('../utils/timing'); - -var Templating = require('../templating'); -var JSONUtils = require('../json'); -var createTemplateEngine = require('./createTemplateEngine'); -var callPageHook = require('./callPageHook'); - -/** - * Prepare and generate HTML for a page - * - * @param {Output} output - * @param {Page} page - * @return {Promise<Page>} - */ -function generatePage(output, page) { - var book = output.getBook(); - var engine = createTemplateEngine(output); - - return timing.measure( - 'page.generate', - Promise(page) - .then(function(resultPage) { - var file = resultPage.getFile(); - var filePath = file.getPath(); - var parser = file.getParser(); - var context = JSONUtils.encodeOutputWithPage(output, resultPage); - - if (!parser) { - return Promise.reject(error.FileNotParsableError({ - filename: filePath - })); - } - - // Call hook "page:before" - return callPageHook('page:before', output, resultPage) - - // Escape code blocks with raw tags - .then(function(currentPage) { - return parser.preparePage(currentPage.getContent()); - }) - - // Render templating syntax - .then(function(content) { - var absoluteFilePath = path.join(book.getContentRoot(), filePath); - return Templating.render(engine, absoluteFilePath, content, context); - }) - - .then(function(output) { - var content = output.getContent(); - - return parser.parsePage(content) - .then(function(result) { - return output.setContent(result.content); - }); - }) - - // Post processing for templating syntax - .then(function(output) { - return Templating.postRender(engine, output); - }) - - // Return new page - .then(function(content) { - return resultPage.set('content', content); - }) - - // Call final hook - .then(function(currentPage) { - return callPageHook('page', output, currentPage); - }); - }) - ); -} - -module.exports = generatePage; |