wikijs-fork/controllers/pages.js

57 lines
1.0 KiB
JavaScript
Raw Normal View History

2016-08-17 03:56:08 +00:00
"use strict";
var express = require('express');
var router = express.Router();
2016-08-28 01:46:10 +00:00
var _ = require('lodash');
2016-08-17 03:56:08 +00:00
router.get('/edit/*', (req, res, next) => {
2016-08-28 01:46:10 +00:00
let safePath = entries.parsePath(_.replace(req.path, '/edit', ''));
entries.fetchOriginal(safePath, {
parseMarkdown: false,
parseMeta: true,
parseTree: false,
includeMarkdown: true,
includeParentInfo: false,
cache: false
}).then((pageData) => {
if(pageData) {
return res.render('pages/edit', { pageData });
} else {
throw new Error('Invalid page path.');
}
}).catch((err) => {
res.render('error', {
message: err.message,
error: {}
});
});
});
router.get('/new/*', (req, res, next) => {
res.send('CREATE MODE');
});
2016-08-17 03:56:08 +00:00
/**
* Home
*/
router.get('/*', (req, res, next) => {
2016-08-20 04:50:29 +00:00
let safePath = entries.parsePath(req.path);
entries.fetch(safePath).then((pageData) => {
if(pageData) {
2016-08-28 01:46:10 +00:00
return res.render('pages/view', { pageData });
} else {
2016-08-28 01:46:10 +00:00
return next();
}
}).catch((err) => {
2016-08-28 01:46:10 +00:00
winston.error(err);
next();
});
2016-08-20 04:50:29 +00:00
2016-08-17 03:56:08 +00:00
});
module.exports = router;