AvalonDocumentationEngine/index.js

40 lines
1.1 KiB
JavaScript
Raw Normal View History

2023-01-05 04:18:04 +00:00
var express = require('express');
var path = require("path");
var fs = require("fs");
var app = express();
app.set('view engine', 'ejs');
app.use("/a", express.static(path.join(__dirname, 'assets')));
app.use("/assets", express.static(path.join(__dirname, 'assets', "Files")));
var getPages = () => JSON.parse(fs.readFileSync(path.join(__dirname, "views", "pages.json"), 'utf8'));
var getPage = (page) => {
var pageindexes = getPages();
console.log(pageindexes.pages, page, pageindexes.pages[page]);
if (pageindexes.pages[page].link.redirect)
return getPage(pageindexes.pages[page].link.location);
return {
name: page,
page: pageindexes.pages[page],
all: pageindexes
};
}
app.get('/wiki/:page', function(req, res, next) {
try {
if (!getPages().pages[req.params.page]) next();
var page = getPage(req.params.page);
res.render('index', page);
} catch (error) {
next(error);
}
});
app.use(function(req,res){
res.status(404).render('index', getPage("404_Not_Found"));
});
app.listen(8080, () => {
console.log('Server is listening on port 8080');
});