You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
640 B
33 lines
640 B
'use strict'; |
|
|
|
function postGenerator(locals) { |
|
const posts = locals.posts.sort('-date').toArray(); |
|
const { length } = posts; |
|
|
|
return posts.map((post, i) => { |
|
const { path, layout } = post; |
|
|
|
if (!layout || layout === 'false') { |
|
return { |
|
path, |
|
data: post.content |
|
}; |
|
} |
|
|
|
if (i) post.prev = posts[i - 1]; |
|
if (i < length - 1) post.next = posts[i + 1]; |
|
|
|
const layouts = ['post', 'page', 'index']; |
|
if (layout !== 'post') layouts.unshift(layout); |
|
|
|
post.__post = true; |
|
|
|
return { |
|
path, |
|
layout: layouts, |
|
data: post |
|
}; |
|
}); |
|
} |
|
|
|
module.exports = postGenerator;
|
|
|