summaryrefslogtreecommitdiff
path: root/src/node/eejs
diff options
context:
space:
mode:
Diffstat (limited to 'src/node/eejs')
-rw-r--r--src/node/eejs/index.js9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/node/eejs/index.js b/src/node/eejs/index.js
index 2d02a45a..7b43de63 100644
--- a/src/node/eejs/index.js
+++ b/src/node/eejs/index.js
@@ -30,6 +30,7 @@ exports.info = {
block_stack: [],
blocks: {},
file_stack: [],
+ args: []
};
exports._init = function (b, recursive) {
@@ -81,7 +82,8 @@ exports.end_define_block = function () {
exports.end_block = function () {
var name = exports.info.block_stack[exports.info.block_stack.length-1];
- var args = {content: exports.end_define_block()};
+ var renderContext = exports.info.args[exports.info.args.length-1];
+ var args = {content: exports.end_define_block(), renderContext: renderContext};
hooks.callAll("eejsBlock_" + name, args);
exports.info.buf.push(args.content);
}
@@ -118,10 +120,13 @@ exports.require = function (name, args, mod) {
args.e = exports;
args.require = require;
var template = '<% e._init(buf); %>' + fs.readFileSync(ejspath).toString() + '<% e._exit(); %>';
-
+
+ exports.info.args.push(args);
exports.info.file_stack.push({path: ejspath, inherit: []});
+
var res = ejs.render(template, args);
exports.info.file_stack.pop();
+ exports.info.args.pop();
return res;
}