pages.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. "use strict";
  2. var express = require('express');
  3. var router = express.Router();
  4. var _ = require('lodash');
  5. router.get('/edit/*', (req, res, next) => {
  6. let safePath = entries.parsePath(_.replace(req.path, '/edit', ''));
  7. entries.fetchOriginal(safePath, {
  8. parseMarkdown: false,
  9. parseMeta: true,
  10. parseTree: false,
  11. includeMarkdown: true,
  12. includeParentInfo: false,
  13. cache: false
  14. }).then((pageData) => {
  15. if(pageData) {
  16. return res.render('pages/edit', { pageData });
  17. } else {
  18. throw new Error('Invalid page path.');
  19. }
  20. }).catch((err) => {
  21. res.render('error', {
  22. message: err.message,
  23. error: {}
  24. });
  25. });
  26. });
  27. router.get('/new/*', (req, res, next) => {
  28. res.send('CREATE MODE');
  29. });
  30. /**
  31. * Home
  32. */
  33. router.get('/*', (req, res, next) => {
  34. let safePath = entries.parsePath(req.path);
  35. entries.fetch(safePath).then((pageData) => {
  36. if(pageData) {
  37. return res.render('pages/view', { pageData });
  38. } else {
  39. return next();
  40. }
  41. }).catch((err) => {
  42. winston.error(err);
  43. next();
  44. });
  45. });
  46. module.exports = router;