UNPKG

668 BJavaScriptView Raw
1'use strict';
2
3function postGenerator(locals) {
4 const posts = locals.posts.sort('-date').toArray();
5 const length = posts.length;
6
7 return posts.map((post, i) => {
8 const layout = post.layout;
9 const path = post.path;
10
11 if (!layout || layout === 'false') {
12 return {
13 path,
14 data: post.content
15 };
16 }
17
18 if (i) post.prev = posts[i - 1];
19 if (i < length - 1) post.next = posts[i + 1];
20
21 const layouts = ['post', 'page', 'index'];
22 if (layout !== 'post') layouts.unshift(layout);
23
24 post.__post = true;
25
26 return {
27 path,
28 layout: layouts,
29 data: post
30 };
31 });
32}
33
34module.exports = postGenerator;