forked from CodeByZach/pace
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy paththemes.js
44 lines (39 loc) · 989 Bytes
/
themes.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
44
(function() {
var Color, compileTheme, loadTheme, vm;
if (typeof module !== "undefined" && module !== null) {
vm = require('vm');
Color = require('color');
}
loadTheme = function(name, cb) {
return $.ajax({
url: "/pace/templates/pace-theme-" + name + ".tmpl.css",
success: cb
});
};
compileTheme = function(body, args) {
if (args == null) {
args = {};
}
return body.replace(/`([\s\S]*?)`/gm, function(match, code) {
var val;
if (typeof module !== "undefined" && module !== null) {
val = vm.runInNewContext(code, {
args: args,
Color: Color
});
} else {
Color = window.Color;
val = eval(code);
}
return val;
});
};
if (typeof module !== "undefined" && module !== null) {
module.exports = {
compileTheme: compileTheme
};
} else {
window.loadTheme = loadTheme;
window.compileTheme = compileTheme;
}
}).call(this);