forked from ArnaudRinquin/express-plates
-
Notifications
You must be signed in to change notification settings - Fork 0
/
express-plates.js
43 lines (37 loc) · 1013 Bytes
/
express-plates.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
(function() {
var expressplates, fs, plates;
plates = require('plates');
fs = require('fs');
expressplates = function() {
this.plates = plates;
return this;
};
expressplates.prototype = {
init: function(app) {
app.engine('.html', this.renderFile);
app.set('view engine', 'html');
return this.plates;
},
renderFile: function(path, options, fn) {
var key, result, str;
key = path + ':string';
if ('function' === typeof options) {
fn = options;
options = {};
}
try {
options.filename = path;
if (options.cache) {
str = exports.cache[key] || (exports.cache[key] = fs.readFileSync(path, 'utf8'));
} else {
str = fs.readFileSync(path, 'utf8');
}
result = plates.bind(str, options.data, options.map, fn);
return fn(null, result);
} catch (err) {
return fn(err);
}
}
};
module.exports = new expressplates();
}).call(this);