1 | var fs = require("fs");
|
2 | var varRegex = new RegExp("\\${[^}]+}");
|
3 |
|
4 | var CssFile = function(file) {
|
5 |
|
6 | var resolveEl = function(s, data) {
|
7 | if (!data) return s;
|
8 | var r;
|
9 | while ((r = varRegex.exec(s)) != null) {
|
10 | for (var i = 0; i < r.length; i++) {
|
11 | var exp = r[i];
|
12 | if (exp.substring(0, 2) === "${" && exp.substring(exp.length-1, exp.length) === "}") {
|
13 | var rep = eval("data." + exp.substring(2, exp.length - 1) + "");
|
14 | s = s.replace(exp, rep);
|
15 | }
|
16 | }
|
17 | }
|
18 | return s;
|
19 | };
|
20 |
|
21 | this.compile = function(data) {
|
22 | var css = fs.readFileSync(file, "UTF-8");
|
23 | css = "/* sv:" + file + " */\n" + css;
|
24 | return resolveEl(css, data);
|
25 | }
|
26 |
|
27 | };
|
28 |
|
29 | module.exports = CssFile; |
\ | No newline at end of file |