-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy pathbuild.js
42 lines (37 loc) · 1.29 KB
/
build.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
var fs = require('fs');
var content = '';
var links = '';
var ignorelist = ['.git', 'readme.md', 'build.js', '.gitignore', '_template.md', 'singlepage.md'];
fs.readdirSync('.').filter(function(x){ return ignorelist.indexOf(x) === -1}).forEach(function(filename){
if (fs.statSync(filename).isDirectory()){
content += '## ' + trimTitle(filename) + '\n\n';
links += '\n## ' + trimTitle(filename) + '\n\n';
scanDirectory(filename);
} else {
appendFile(filename);
}
});
function scanDirectory(directory){
fs.readdirSync(directory).forEach(function(filename){
appendFile(directory + '/' + filename);
});
}
function appendFile(filename){
console.log(filename);
var fileContent = fs.readFileSync(filename).toString().trim();
if (fileContent.length > 0){
content += fileContent + '\n\n---\n\n';
var splitFilename = filename.split('/');
var title = splitFilename[splitFilename.length - 1].replace(".md","");
links += ' * [' + trimTitle(title) + '](' + filename + ')\n';
}
}
function trimTitle(value){
if (!isNaN(parseInt(value[0]))){
value = value.substring(1);
}
return value.trim();
}
var template = fs.readFileSync('_template.md').toString();
fs.writeFileSync('singlepage.md', template.replace('<REPLACE>', content));
fs.writeFileSync('readme.md', template.replace('<REPLACE>', links));