Hexo博文置顶

Hexo博客首页博文置顶

首页生成代码

要修改hexo博客首页文章的排序,就得修改首页index文件生成的逻辑,在hexo默认插件hero-generator-index里面修改。路径如下:

node_modules/hexo-generator-index/lib/generator.js

修改生成代码逻辑

'use strict';
var pagination = require('hexo-pagination');
// module.exports = function(locals) {
// var config = this.config;
// var posts = locals.posts.sort(config.index_generator.order_by);
// var paginationDir = config.pagination_dir || 'page';
// var path = config.index_generator.path || '';
// return pagination(path, posts, {
// perPage: config.index_generator.per_page,
// layout: ['index', 'archive'],
// format: paginationDir + '/%d/',
// data: {
// __index: true
// }
// });
// };
module.exports = function(locals){
var config = this.config;
var posts = locals.posts;
posts.data = posts.data.sort(function(a, b) {
if(a.top && b.top) {
if(a.top == b.top) return b.date - a.date;
else return b.top - a.top;
}
else if(a.top && !b.top) {
return -1;
}
else if(!a.top && b.top) {
return 1;
}
else return b.date - a.date;
});
var paginationDir = config.pagination_dir || 'page';
return pagination('', posts, {
perPage: config.index_generator.per_page,
layout: ['index', 'archive'],
format: paginationDir + '/%d/',
data: {
__index: true
}
});
};

注释掉的是原来的代码,注释的下面是修改后的逻辑。

在博文title同一级别添加参数top

上面的代码改造增加了top参数,数值越大则排越前,有数值的优先,数值一样大或没有数值的按照文件日期来排序。
示例:

---
top: 1
title: Hexo博文置顶
category: hexo
tags:
- hexo
- 博客
keywords:
- Hexo博文置顶
- Hexo文章置顶
---