generator.js 715 B

1234567891011121314151617181920212223242526
  1. 'use strict';
  2. const pagination = require('hexo-pagination');
  3. module.exports = function(locals) {
  4. const config = this.config;
  5. const perPage = config.category_generator.per_page;
  6. const paginationDir = config.pagination_dir || 'page';
  7. const orderBy = config.category_generator.order_by || '-date';
  8. return locals.categories.reduce((result, category) => {
  9. if (!category.length) return result;
  10. const posts = category.posts.sort(orderBy);
  11. const data = pagination(category.path, posts, {
  12. perPage,
  13. layout: ['category', 'archive', 'index'],
  14. format: paginationDir + '/%d/',
  15. data: {
  16. category: category.name
  17. }
  18. });
  19. return result.concat(data);
  20. }, []);
  21. };