-
Notifications
You must be signed in to change notification settings - Fork 1
/
convert.js
65 lines (54 loc) · 1.75 KB
/
convert.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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
var sys = require('sys');
var less = require('./less.js/lib/less/');
var fs = require('fs');
// read behave directory and grab all behaviors
var cssFiles = paths('./examples/css/');
//sys.puts(JSON.stringify(cssFiles));
var code = '';
for(var file in cssFiles){
var x = cssFiles[file];
if(x.substr(x.length-4,4) == '.css'){ // if this is a css file
var fileContents = fs.readFileSync(cssFiles[file], encoding='utf8');
//docs.behave += "<li>"+docFilter(behaves[behave])+"</li>";
code += (fileContents + '\n\n');
}
else{
//code += (fileFilter(cssFiles[file]) + ' = {};' + '\n\n');
}
}
//sys.puts(code);
less.render(".main h1 {height:20px;width:20px;}", function (e, css, json_stylesheet) {
sys.puts(css); // .class { width: 20px }
});
function fileFilter(txt){
/*
txt = txt.replace(/\.\//g, '');
txt = txt.replace(/\//g, '.');
txt = txt.replace(/\.js/, '');
txt = txt.replace(/\.index/, '');
*/
return txt;
}
// Recursively traverse a hierarchy, returning a list of all relevant .js files.
function paths(dir) {
var paths = [];
try { fs.statSync(dir) }
catch (e) { return [] }
(function traverse(dir, stack) {
stack.push(dir);
fs.readdirSync(stack.join('/')).forEach(function (file) {
var path = stack.concat([file]).join('/'),
stat = fs.statSync(path);
if (file[0] == '.' || file === 'vendor') {
return;
} else if (stat.isFile() && /\.css$/.test(file)) {
paths.push(path);
} else if (stat.isDirectory()) {
paths.push(path);
traverse(file, stack);
}
});
stack.pop();
})(dir || '.', []);
return paths;
}