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
|
|
|
|
2016-08-27 05:04: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: {}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2016-08-27 05:04:08 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
router.get('/new/*', (req, res, next) => {
|
|
|
|
res.send('CREATE MODE');
|
|
|
|
});
|
|
|
|
|
2016-08-17 03:56:08 +00:00
|
|
|
/**
|
|
|
|
* Home
|
|
|
|
*/
|
2016-08-27 05:04:08 +00:00
|
|
|
router.get('/*', (req, res, next) => {
|
2016-08-20 04:50:29 +00:00
|
|
|
|
2016-08-27 05:04:08 +00:00
|
|
|
let safePath = entries.parsePath(req.path);
|
2016-08-20 21:20:53 +00:00
|
|
|
|
2016-08-27 05:04:08 +00:00
|
|
|
entries.fetch(safePath).then((pageData) => {
|
|
|
|
if(pageData) {
|
2016-08-28 01:46:10 +00:00
|
|
|
return res.render('pages/view', { pageData });
|
2016-08-27 05:04:08 +00:00
|
|
|
} else {
|
2016-08-28 01:46:10 +00:00
|
|
|
return next();
|
2016-08-20 21:20:53 +00:00
|
|
|
}
|
2016-08-27 05:04:08 +00:00
|
|
|
}).catch((err) => {
|
2016-08-28 01:46:10 +00:00
|
|
|
winston.error(err);
|
2016-08-27 05:04:08 +00:00
|
|
|
next();
|
|
|
|
});
|
2016-08-20 04:50:29 +00:00
|
|
|
|
2016-08-17 03:56:08 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
module.exports = router;
|