forked from magn3tic/dreamhost-remixer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgenerator.js
48 lines (41 loc) · 1.38 KB
/
generator.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
var fs = require('fs'),
http = require('http'),
path = require('path'),
Handlebars = require('handlebars'),
helpers = require('./helpers'),
//loads partials
loadPartials = function(dir) {
var partials = fs.readdirSync(dir);
for (var i in partials) {
var file = fs.readFileSync(dir+'/'+partials[i], {encoding:'utf8'}),
name = path.basename(partials[i],'.html');
Handlebars.registerPartial(name, file+'\n');
}
},
//render out page portion
loadPages = function(dir) {
var pages = fs.readdirSync(dir),
siteLayout = fs.readFileSync('src/layout.html', {encoding:'utf8'}),
siteData = fs.readFileSync('src/site.json', {encoding:'utf8'}),
siteData = JSON.parse(siteData);
for (var i in pages) {
var file = fs.readFileSync(dir+'/'+pages[i], {encoding:'utf8'}),
name = path.basename(pages[i],'.html'),
template = Handlebars.compile(siteLayout.replace('<page>', file));
siteData.current_page_file = pages[i];
siteData.current_page_name = name;
siteData.debug = name === 'debug' ? true : false;
siteData.seo = siteData._seo[name] ? siteData._seo[name] : '';
var html = template(siteData);
fs.writeFile('dist/'+name+'.html', html, function(err) {
if (err) {return console.log(err);}
});
}
},
buildSite = function() {
helpers(Handlebars);
loadPartials('src/partials');
loadPages('src/pages');
};
//export generator()
module.exports.build = buildSite;