diff --git a/lib/engines/jade.js b/lib/engines/jade.js index fe8d36d..f381673 100644 --- a/lib/engines/jade.js +++ b/lib/engines/jade.js @@ -37,17 +37,24 @@ function getTemplate(template) { exports.render = function(template, data) { init(); + if (!store._templates) { + store._templates = {}; + } if (!/\.jade$/.test(template)) { template = template + '.jade'; } - var filename = getTemplate(template); - if (!filename) { - throw new Error('template ' + template + ' not found.'); - } + var fn = store._templates[template]; + if (!fn) { + var filename = getTemplate(template); + if (!filename) { + throw new Error('template ' + template + ' not found.'); + } - var fn = jade.compile(file.read(filename), {filename: filename}); + fn = jade.compile(file.read(filename), {filename: filename}); + store._templates[template] = fn; + } data = _.defaults(data, store.globals); return fn(data);