86 lines
1.6 KiB
JavaScript
Executable File
86 lines
1.6 KiB
JavaScript
Executable File
const fs = require('fs')
|
|
|
|
function collectVakken(dir, child=null){
|
|
files = fs.readdirSync(dir)
|
|
//TODO: catch errors
|
|
//if(err) { console.error("getVakken: readdir:" + err) }
|
|
|
|
siteMap = {};
|
|
|
|
for(i=files.length-1; i >= 0; i--){
|
|
if(files[i] == 'notes') continue;
|
|
Dfile = files[i]
|
|
|
|
//TODO: handel archief
|
|
|
|
link = Dfile.toLowerCase().replace(/\ /g, '-')
|
|
p = colectPages(`${dir}/${Dfile}`, link)
|
|
|
|
siteMap[link] = {
|
|
title: Dfile,
|
|
url: `/${link}`,
|
|
index: p.index,
|
|
pages: p.pages
|
|
}
|
|
}
|
|
return siteMap
|
|
}
|
|
|
|
function colectPages(dir, baseURL){
|
|
var pages = {index: null, pages: {}}
|
|
|
|
try {
|
|
files = fs.readdirSync(dir + '/notes')
|
|
} catch (error) {
|
|
return []
|
|
}
|
|
|
|
for(i=files.length-1; i >= 0; i--){
|
|
if(files[i] == 'static') continue;
|
|
|
|
if(files[i] == 'index.md'){
|
|
pages[0] = `${dir}/${files[i]}`
|
|
continue
|
|
}
|
|
|
|
file = files[i].split('.')
|
|
extention = file.pop()
|
|
fileName = file.join('.')
|
|
file = files[i]
|
|
fileDir = `${dir}/notes/${file}`
|
|
friendlyURL = fileName.toLowerCase().replace(/\ /g, '-')
|
|
|
|
type = 'unknown'
|
|
switch(extention){
|
|
case 'pdf':
|
|
case 'md':
|
|
type = extention
|
|
break;
|
|
}
|
|
|
|
if(type == 'unknown'){
|
|
console.warn(`501 - file type not suported (${extention}):`, fileDir)
|
|
continue
|
|
}
|
|
|
|
pages.pages[friendlyURL] = {
|
|
title: fileName,
|
|
url: `/${baseURL}/${friendlyURL}`,
|
|
file: fileDir,
|
|
type: type
|
|
}
|
|
}
|
|
return pages
|
|
}
|
|
|
|
function main(){
|
|
dir = __dirname.split('/')
|
|
dir.pop()
|
|
dir = dir.join('/')
|
|
|
|
siteMap = collectVakken(dir)
|
|
return siteMap
|
|
}
|
|
|
|
module.exports = main()
|