mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-13 22:41:32 -05:00
a1d00b56b2
Added a .trim() to the slug generation and redirect to the first page if the page parameter is parsed as less than 1.
44 lines
No EOL
1.4 KiB
JavaScript
44 lines
No EOL
1.4 KiB
JavaScript
/**
|
|
* Main controller for Ghost frontend
|
|
*/
|
|
|
|
/*global require, module */
|
|
|
|
var Ghost = require('../../ghost'),
|
|
api = require('../api'),
|
|
|
|
ghost = new Ghost(),
|
|
frontendControllers;
|
|
|
|
frontendControllers = {
|
|
'homepage': function (req, res) {
|
|
// Parse the page number
|
|
var pageParam = req.params.page !== undefined ? parseInt(req.params.page, 10) : 1;
|
|
|
|
// No negative pages
|
|
if (pageParam < 1) {
|
|
return res.redirect("/page/1/");
|
|
}
|
|
|
|
api.posts.browse({page: pageParam}).then(function (page) {
|
|
// If page is greater than number of pages we have, redirect to last page
|
|
if (pageParam > page.pages) {
|
|
return res.redirect("/page/" + (page.pages) + "/");
|
|
}
|
|
|
|
// Render the page of posts
|
|
ghost.doFilter('prePostsRender', page.posts, function (posts) {
|
|
res.render('index', {posts: posts, pagination: {page: page.page, prev: page.prev, next: page.next, limit: page.limit, total: page.total, pages: page.pages}});
|
|
});
|
|
});
|
|
},
|
|
'single': function (req, res) {
|
|
api.posts.read({'slug': req.params.slug}).then(function (post) {
|
|
ghost.doFilter('prePostsRender', post.toJSON(), function (post) {
|
|
res.render('post', {post: post});
|
|
});
|
|
});
|
|
}
|
|
};
|
|
|
|
module.exports = frontendControllers; |