const express = require('express') const siteMap = require('./siteMap') const compile = require('./compile'); const settings = require('./settings'); const { render } = require('ejs'); console.log(siteMap) const app = express() app.set('view engine', 'ejs'); app.set('views', __dirname + '/views') app.use('/:vak/static', renderStatic) app.use('/:vak/:page', renderPage) app.use('/:vak', renderVak) app.use('/', renderIndex) app.use(render404) function onError404(req, res, next){ return function(err){ render404(req, res, next) } } function renderStatic(req, res, next){ if(typeof siteMap[req.params.vak] == 'undefined') return next(); vak = siteMap[req.params.vak] dir = __dirname.split('/'); dir.pop() // remove dir of this code dir = `${dir.join('/')}/${vak.title}/notes/static${req.path}` res.sendFile(dir, onError404(req, res, next)) } function renderPage(req, res, next){ if(typeof siteMap[req.params.vak] == 'undefined') return next(); vak = siteMap[req.params.vak] if(typeof vak.pages[req.params.page] == 'undefined') return next(); page = vak.pages[req.params.page] compile(page, function(html){ if(typeof html != 'string'){ return next() } res.render('main', { siteMap, title: "notes", topNav: vak.pages, vak: req.params.vak, page: req.params.page, main: html }) }) } function renderVak(req, res, next){ if(typeof siteMap[req.params.vak] == 'undefined') return next(); vak = siteMap[req.params.vak] if(vak.index == null){ res.render('main', { siteMap, title: "notes", topNav: vak.pages, vak: req.params.vak, main: `