summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-02-21 01:02:20 +0100
committerSamy Pessé <samypesse@gmail.com>2016-02-21 01:02:20 +0100
commit2f15e26ffa9ca67007e9f23ac732fed0fcb109d9 (patch)
tree81c80adddaa8437e3ec7bda26bf62f8b62f014ff
parentb4cdbc6534b12d4547898077b7d5b2fd2b2163d0 (diff)
downloadgitbook-2f15e26ffa9ca67007e9f23ac732fed0fcb109d9.zip
gitbook-2f15e26ffa9ca67007e9f23ac732fed0fcb109d9.tar.gz
gitbook-2f15e26ffa9ca67007e9f23ac732fed0fcb109d9.tar.bz2
Fix context for templating and page
-rw-r--r--lib/output/base.js12
-rw-r--r--lib/output/json.js2
-rw-r--r--lib/output/website.js2
-rw-r--r--lib/page/index.js36
4 files changed, 24 insertions, 28 deletions
diff --git a/lib/output/base.js b/lib/output/base.js
index f5a8e4f..4190559 100644
--- a/lib/output/base.js
+++ b/lib/output/base.js
@@ -175,18 +175,6 @@ Output.prototype.onResolveTemplate = function(from, to) {
// ---- Utilities ----
-// Return the complete templating context for a page
-Output.prototype.getPageContext = function(page) {
- return _.extend(
- page.getContext(),
- gitbook.getContext(),
- this.book.getContext(),
- this.book.summary.getContext(),
- this.book.glossary.getContext(),
- this.book.config.getContext()
- );
-};
-
// Resolve a file path in the context of a specific page
// Result is an "absolute path relative to the output folder"
Output.prototype.resolveForPage = function(page, href) {
diff --git a/lib/output/json.js b/lib/output/json.js
index 5805579..86a2307 100644
--- a/lib/output/json.js
+++ b/lib/output/json.js
@@ -16,7 +16,7 @@ JSONOutput.prototype.onPage = function(page) {
// Write as json
.then(function() {
- var json = that.getPageContext(page);
+ var json = page.getContext();
// Delete some private properties
delete json.config;
diff --git a/lib/output/website.js b/lib/output/website.js
index d856229..1cdd4a6 100644
--- a/lib/output/website.js
+++ b/lib/output/website.js
@@ -138,7 +138,7 @@ WebsiteOutput.prototype.onPage = function(page) {
// Render the page template with the same context as the json output
.then(function() {
- return that.render('page', that.getPageContext(page));
+ return that.render('page', page.getContext());
})
// Write the HTML file
diff --git a/lib/page/index.js b/lib/page/index.js
index c4d2721..45b3598 100644
--- a/lib/page/index.js
+++ b/lib/page/index.js
@@ -6,6 +6,7 @@ var error = require('../utils/error');
var pathUtil = require('../utils/path');
var location = require('../utils/location');
var parsers = require('../parsers');
+var gitbook = require('../gitbook');
var HTMLPipeline = require('./html');
/*
@@ -109,21 +110,28 @@ Page.prototype.getContext = function() {
if (dir == 'neutral') dir = null;
}
- return {
- file: {
- path: this.path,
- mtime: this.mtime,
- type: this.type
+ return _.extend(
+ {
+ file: {
+ path: this.path,
+ mtime: this.mtime,
+ type: this.type
+ },
+ page: {
+ title: article? article.title : null,
+ next: next? next.getContext() : null,
+ previous: prev? prev.getContext() : null,
+ level: article? article.level : null,
+ content: this.content,
+ dir: dir
+ }
},
- page: {
- title: article? article.title : null,
- next: next? next.getContext() : null,
- previous: prev? prev.getContext() : null,
- level: article? article.level : null,
- content: this.content,
- dir: dir
- }
- };
+ gitbook.getContext(),
+ this.book.getContext(),
+ this.book.summary.getContext(),
+ this.book.glossary.getContext(),
+ this.book.config.getContext()
+ );
};
// Parse the page and return its content