From 53ced205b820a0b8cf6bfc0d3090b3bb3dc20d6b Mon Sep 17 00:00:00 2001 From: Samy Pesse Date: Tue, 19 Apr 2016 15:46:37 +0200 Subject: [PATCH] Ensure "template" is always set when rendering a template --- lib/output/website/index.js | 6 ++---- lib/output/website/templateEnv.js | 6 +++++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/output/website/index.js b/lib/output/website/index.js index 9acc63182..0a8618c4a 100644 --- a/lib/output/website/index.js +++ b/lib/output/website/index.js @@ -154,9 +154,7 @@ WebsiteOutput.prototype.renderAsString = function(tpl, context) { // Calcul template name var filename = this.templateName(tpl); - context = _.extend({ - template: {} - }, context, { + context = _.extend(context, { plugins: { resources: this.resources }, @@ -167,7 +165,7 @@ WebsiteOutput.prototype.renderAsString = function(tpl, context) { // Create environment var env = setupTemplateEnv(this, context); - return Promise.nfcall(env.render.bind(env), filename); + return Promise.nfcall(env.render.bind(env), filename, context); }; /* diff --git a/lib/output/website/templateEnv.js b/lib/output/website/templateEnv.js index b3009db2c..d385108a8 100644 --- a/lib/output/website/templateEnv.js +++ b/lib/output/website/templateEnv.js @@ -21,6 +21,11 @@ function templatesPath(dir) { @return {Nunjucks.Environment} */ function setupTemplateEnv(output, context) { + context = _.defaults(context || {}, { + // Required by ThemeLoader + template: {} + }); + var loader = new ThemeLoader( _.map(output.searchPaths, templatesPath) ); @@ -84,7 +89,6 @@ function setupTemplateEnv(output, context) { return location.normalize(href); }); - return env; }