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()