-
Notifications
You must be signed in to change notification settings - Fork 3
/
template.js
31 lines (28 loc) · 913 Bytes
/
template.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
var _ = require("underscore")
, fs = require("fs")
, templates = {}
, skins = {}
, _skin = "default";
_.each(fs.readdirSync("./skins/"), function(name) {
var prefix = "./skins/"+name+"/";
console.log("[Templater] Loading skin "+name);
skins[name] = JSON.parse(fs.readFileSync(prefix+"skin.json","utf8"));
skins[name].css = fs.readFileSync(prefix+"skin.css","utf8");
});
_.each(fs.readdirSync("./templates/"),function(filename) {
var name = filename.split(".")[0];
console.log("[Templater] Loading template "+name);
templates[name] = _.template(fs.readFileSync("./templates/"+filename,"utf8"));
});
var skin = function(name) {
if(_.isString(name))
return skins[name];
else _skin = name;
}
exports.skin = skin;
exports.get = function(name) {
return templates[name];
}
exports.execute = function(name, config) {
return templates[name](_.defaults(config, {skin: skin(_skin)}));
}