diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-04-25 10:58:10 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-04-25 10:58:10 +0200 |
commit | 3aa17ab1f4a25a9bcfd8babdcf98a37ac6c2496c (patch) | |
tree | 5d96f7c0b209b55f15198a64673ee2e27af229f4 | |
parent | 4646ed8f4af184a33280d8fe1f978c7da5404725 (diff) | |
download | gitbook-3aa17ab1f4a25a9bcfd8babdcf98a37ac6c2496c.zip gitbook-3aa17ab1f4a25a9bcfd8babdcf98a37ac6c2496c.tar.gz gitbook-3aa17ab1f4a25a9bcfd8babdcf98a37ac6c2496c.tar.bz2 |
Convert markdown to html for pages
-rw-r--r-- | lib/output/generatePage.js | 38 | ||||
-rw-r--r-- | lib/output/generatePages.js | 6 | ||||
-rw-r--r-- | lib/parse/index.js | 3 |
3 files changed, 45 insertions, 2 deletions
diff --git a/lib/output/generatePage.js b/lib/output/generatePage.js new file mode 100644 index 0000000..6fe0514 --- /dev/null +++ b/lib/output/generatePage.js @@ -0,0 +1,38 @@ +var Promise = require('../utils/promise'); +var error = require('../utils/error'); + +var Parse = require('../parse'); + +/** + Prepare and generate HTML for a page + + @param {Output} output + @param {Page} page + @return {Promise<Page>} +*/ +function generatePage(output, page) { + var book = output.getBook(); + + return Parse.parsePage(book, page) + .then(function(resultPage) { + var file = resultPage.getFile(); + var filePath = file.getPath(); + var parser = file.getParser(); + + if (!parser) { + return Promise.reject(error.FileNotParsableError({ + filename: filePath + })); + } + + return Promise(resultPage.getContent()) + .then(parser.page.prepare) + .then(parser.page) + .get('content') + .then(function(content) { + return resultPage.set('content', content); + }); + }); +} + +module.exports = generatePage; diff --git a/lib/output/generatePages.js b/lib/output/generatePages.js index 5ec46f8..5b6851e 100644 --- a/lib/output/generatePages.js +++ b/lib/output/generatePages.js @@ -1,4 +1,5 @@ var Promise = require('../utils/promise'); +var generatePage = require('./generatePage'); /** Output all pages using a generator @@ -21,7 +22,10 @@ function generatePages(generator, output) { logger.debug.ln('generate page "' + file.getPath() + '"'); - return generator.onPage(out, page); + return generatePage(out, page) + .then(function(resultPage) { + return generator.onPage(out, resultPage); + }); }, output); } diff --git a/lib/parse/index.js b/lib/parse/index.js index 785b67e..ac27fcf 100644 --- a/lib/parse/index.js +++ b/lib/parse/index.js @@ -8,5 +8,6 @@ module.exports = { parsePagesList: require('./parsePagesList'), parseIgnore: require('./parseIgnore'), listAssets: require('./listAssets'), - parseLanguages: require('./parseLanguages') + parseLanguages: require('./parseLanguages'), + parsePage: require('./parsePage') }; |