diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitbook.js | 12 | ||||
-rw-r--r-- | lib/json/encodeBook.js | 8 | ||||
-rw-r--r-- | lib/output/website/onPage.js | 29 |
3 files changed, 33 insertions, 16 deletions
diff --git a/lib/gitbook.js b/lib/gitbook.js index f847899..bafd3b8 100644 --- a/lib/gitbook.js +++ b/lib/gitbook.js @@ -21,18 +21,8 @@ function satisfies(condition) { return semver.satisfies(VERSION_STABLE, condition); } -// Return templating/json context for gitbook itself -function getContext() { - return { - gitbook: { - version: pkg.version, - time: START_TIME - } - }; -} - module.exports = { version: pkg.version, satisfies: satisfies, - getContext: getContext + START_TIME: START_TIME }; diff --git a/lib/json/encodeBook.js b/lib/json/encodeBook.js index 6c1b023..3bbbe0f 100644 --- a/lib/json/encodeBook.js +++ b/lib/json/encodeBook.js @@ -1,3 +1,5 @@ +var gitbook = require('../gitbook'); + var encodeSummary = require('./encodeSummary'); var encodeGlossary = require('./encodeGlossary'); var encodeReadme = require('./encodeReadme'); @@ -12,7 +14,11 @@ function encodeBookToJson(book) { return { summary: encodeSummary(book.getSummary()), glossary: encodeGlossary(book.getGlossary()), - readme: encodeReadme(book.getReadme()) + readme: encodeReadme(book.getReadme()), + gitbook: { + version: gitbook.version, + time: gitbook.START_TIME + } }; } diff --git a/lib/output/website/onPage.js b/lib/output/website/onPage.js index a5598e4..8af3622 100644 --- a/lib/output/website/onPage.js +++ b/lib/output/website/onPage.js @@ -1,5 +1,9 @@ +var path = require('path'); +var omit = require('omit-keys'); + var Templating = require('../../templating'); var JSONUtils = require('../../json'); +var LocationUtils = require('../../utils/location'); var Modifiers = require('../modifiers'); var writeFile = require('../helper/writeFile'); var getModifiers = require('../getModifiers'); @@ -16,22 +20,39 @@ function onPage(output, page) { var options = output.getOptions(); var file = page.getFile(); var prefix = options.get('prefix'); + var book = output.getBook(); + var config = book.getConfig(); + var engine = createTemplateEngine(output, page.getPath()); + // Output file path + var filePath = fileToOutput(output, file.getPath()); + + // Calcul relative path to the root + var outputDirName = path.dirname(filePath); + var basePath = LocationUtils.normalize(path.relative(outputDirName, './')); + return Modifiers.modifyHTML(page, getModifiers(output, page)) .then(function(resultPage) { // Generate the context var context = JSONUtils.encodeBookWithPage(output.getBook(), resultPage); + context.config = config.getValues().toJS(); context.template = { getJSContext: function() { - return {}; + return { + page: omit(context.page, 'content'), + config: context.config, + file: context.file, + gitbook: context.gitbook, + basePath: basePath, + book: { + language: null //context.book.language + } + }; } }; - // Output file path - var filePath = fileToOutput(output, file.getPath()); - // Render the theme return Templating.renderFile(engine, prefix + '/page.html', context) |