通过改用hexo-generator-index-pin-top或修改hexo-generator-index源码实现文章置顶

更换文章排序插件

改用hexo-generator-index-pin-top插件

卸载默认排序插件hexo-generator-index

npm uninstall hexo-generator-index

更换为hexo-generator-index-pin-top插件

npm install hexo-generator-index-pin-top --save

在Front-matter中添加top: true即可开启置顶功能,置顶多篇文章时参数值越大排序越靠前

修改源码

修改hexo-generator-index插件

作为默认的博客文章排序插件却不支持文章置顶,有点可惜,但可以通过修改源码实现多篇文章按需置顶

    const config = this.config;
- const posts = locals.posts.sort(config.index_generator.order_by);
+ const 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;
+ });
- sort(posts.data, (a, b) => (b.sticky || 0) - (a.sticky || 0));

const paginationDir = config.pagination_dir || 'page';
const path = config.index_generator.path || '';

参考hexo-generator-index-pin-top做相应修改,若选用主题按date排序,需要对相应文件做修改,所以推荐改用hexo-generator-index-pin-top,一步到位