in plugins/blog-plugin.js [47:89]
function paginateBlogPosts({
filtedBlogPosts,
basePageUrl,
blogTitle,
blogDescription,
postsPerPageOption,
}) {
const totalCount = filtedBlogPosts.length;
const postsPerPage =
postsPerPageOption === "ALL" ? totalCount : postsPerPageOption;
const numberOfPages = Math.ceil(totalCount / postsPerPage);
const pages = [];
function permalink(page) {
return page > 0
? utils.normalizeUrl([basePageUrl, `page/${page + 1}`])
: basePageUrl;
}
for (let page = 0; page < numberOfPages; page += 1) {
pages.push({
items: filtedBlogPosts
.slice(page * postsPerPage, (page + 1) * postsPerPage)
.map((item) => item.id),
metadata: {
permalink: permalink(page),
page: page + 1,
postsPerPage,
totalPages: numberOfPages,
totalCount,
previousPage: page !== 0 ? permalink(page - 1) : '',
nextPage:
page < numberOfPages - 1 ? permalink(page + 1) : '',
blogDescription,
blogTitle,
},
});
}
return pages;
}