summaryrefslogtreecommitdiffstats
path: root/lib/output
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-04-25 15:36:18 +0200
committerSamy Pessé <samypesse@gmail.com>2016-04-25 15:36:18 +0200
commit0c2dc06cb721a437480d5a10611511b8f84b00a8 (patch)
treefd944c625c0eebd1f5f39770d58abe8aa8b5d447 /lib/output
parent4552ccd7d76a1bf958481e24a695dd3b68e6c232 (diff)
downloadgitbook-0c2dc06cb721a437480d5a10611511b8f84b00a8.zip
gitbook-0c2dc06cb721a437480d5a10611511b8f84b00a8.tar.gz
gitbook-0c2dc06cb721a437480d5a10611511b8f84b00a8.tar.bz2
Fix resolution of theme's templates
Diffstat (limited to 'lib/output')
-rw-r--r--lib/output/index.js1
-rw-r--r--lib/output/website/createTemplateEngine.js17
-rw-r--r--lib/output/website/index.js2
-rw-r--r--lib/output/website/onPage.js4
-rw-r--r--lib/output/website/options.js5
5 files changed, 25 insertions, 4 deletions
diff --git a/lib/output/index.js b/lib/output/index.js
index d353490..9112666 100644
--- a/lib/output/index.js
+++ b/lib/output/index.js
@@ -1,5 +1,6 @@
module.exports = {
generate: require('./generateBook'),
JSONGenerator: require('./json'),
+ WebsiteGenerator: require('./website'),
EbookGenerator: require('./ebook')
};
diff --git a/lib/output/website/createTemplateEngine.js b/lib/output/website/createTemplateEngine.js
index 1a70667..b90c3ad 100644
--- a/lib/output/website/createTemplateEngine.js
+++ b/lib/output/website/createTemplateEngine.js
@@ -1,8 +1,19 @@
+var path = require('path');
+
+var TEMPLATES_FOLDER = require('../../constants/templatesFolder');
+
var Templating = require('../../templating');
var TemplateEngine = require('../../models/templateEngine');
var listSearchPaths = require('./listSearchPaths');
/**
+ Directory for a theme with the templates
+*/
+function templateFolder(dir) {
+ return path.join(dir, TEMPLATES_FOLDER);
+}
+
+/**
Create templating engine to render themes
@param {Output}
@@ -10,7 +21,11 @@ var listSearchPaths = require('./listSearchPaths');
*/
function createTemplateEngine(output) {
var searchPaths = listSearchPaths(output);
- var loader = new Templating.ThemesLoader(searchPaths);
+
+ // Search paths for templates
+ var tplSearchPaths = searchPaths.map(templateFolder);
+
+ var loader = new Templating.ThemesLoader(tplSearchPaths);
return new TemplateEngine({
loader: loader
diff --git a/lib/output/website/index.js b/lib/output/website/index.js
index e24c127..bb01ed6 100644
--- a/lib/output/website/index.js
+++ b/lib/output/website/index.js
@@ -1,6 +1,6 @@
module.exports = {
- name: 'json',
+ name: 'website',
Options: require('./options'),
onPage: require('./onPage')
};
diff --git a/lib/output/website/onPage.js b/lib/output/website/onPage.js
index 47274b3..b6856b3 100644
--- a/lib/output/website/onPage.js
+++ b/lib/output/website/onPage.js
@@ -12,6 +12,8 @@ var createTemplateEngine = require('./createTemplateEngine');
@param {Page} page
*/
function onPage(output, page) {
+ var options = output.getOptions();
+ var prefix = options.get('prefix');
var engine = createTemplateEngine(output);
return Modifiers.modifyHTML(page, getModifiers(output, page))
@@ -20,7 +22,7 @@ function onPage(output, page) {
var context = JSONUtils.encodeBookWithPage(output.getBook(), resultPage);
// Render the theme
- return Templating.renderFile(engine, 'website/page.html', context)
+ return Templating.renderFile(engine, prefix + '/page.html', context)
// Write it to the disk
.then(function(html) {
diff --git a/lib/output/website/options.js b/lib/output/website/options.js
index 79167b1..eca8a8d 100644
--- a/lib/output/website/options.js
+++ b/lib/output/website/options.js
@@ -2,7 +2,10 @@ var Immutable = require('immutable');
var Options = Immutable.Record({
// Root folder for the output
- root: String()
+ root: String(),
+
+ // Prefix for generation
+ prefix: String('website')
});
module.exports = Options;