-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfilesys.js
30 lines (23 loc) · 930 Bytes
/
filesys.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
var fs = require('fs');
var templateFiles = fs.readdirSync('public/templates');
var fileContents;
var generatedName;
var fileToWrite;
var yuiModuleTemplate = "YUI.add('{module_name}', function(Y) { ";
yuiModuleTemplate += "Y.one('head').append(unescape('{template}')); ";
yuiModuleTemplate += "}, '0.0.1', {requires: ['node']}); ";
function htmlEscape(text) {
return text.replace(/&/g,'&').
replace(/</g,'<').
replace(/"/g,'"').
replace(/'/g,''');
}
templateFiles.forEach(function(file) {
fileContents = fs.readFileSync('public/templates/'+file, 'utf-8');
fileToWrite = yuiModuleTemplate;
fileToWrite = fileToWrite.replace('{module_name}', file.replace('.html', ''));
fileToWrite = fileToWrite.replace('{template}', escape(fileContents));
generatedName = file.replace('.html', '.js');
fs.writeFileSync('public/js/generated/'+generatedName, fileToWrite);
console.log('file: "'+file);
});