post.js 668 B

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