This repository has been archived on 2025-01-25. You can view files and clone it, but cannot push or open issues or pull requests.
noteApp/siteMap.js
Mats van Reenen 053de6aebd first comit
2020-07-11 21:40:34 +02:00

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