Hexo next 对文章进行自定义排序

本文讲述了如何在Hexo博客中实现文章的自定义排序,通过添加top标签并修改generator.js文件,让你可以根据top值调整文章显示顺序。同时提供了快捷方法和常见问题解决方案。
摘要由CSDN通过智能技术生成

创作灵感:

我今天在自己的网站写blog的时候遇到了文章排序无法自定义的情况,后来查阅网络之后并没有发现一个很好解决方案,于是经过多方努力之后,我解决了这个问题,最后发现这个问题不是很困难。于是心血来潮,抱着给像我这样的人栽树的心情,我决定自己出一篇教程来帮助大家。

开始

其实在hexo-next主题中已经预先设置好了一个给文章排序的功能,只不过是按照时间自己排序的,如果你想自定义排序的话,只需要添加相应的标签即可:

---
title: {{ title }}
date: {{ date }}
top:            # top值越大,文章排序越靠前
tags:
categories: 
---

所以要想给文章排序只需要在你写的文章开始时,在标签中加入top:即可,top数字越大排序越靠前。

解决问题

假如说你在进行上述操作之后还是没有解决问题请进行如下操作:

在node_modules\hexo-generator-index-pin-top\lib目录下的generator.js文件中整体修改为:

var pagination = require('hexo-pagination');
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) { // 两篇文章top都有定义
            if(a.top == b.top) return b.date - a.date; // 若top值一样则按照文章日期降序排
            else return b.top - a.top; // 否则按照top值降序排
        }
        else if(a.top && !b.top) { // 以下是只有一篇文章top有定义,那么将有top的排在前面(这里用异或操作居然不行233)
            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
    }
  });
};

相信你修改成这样之后就可以按照之前的步骤对文章进行排序了。

方便你更好的操作,我教你一个快捷办法:

大家坑定每次都有对文章排序的需求对吧,那么修改更博客根目录下的scaffolds文件夹下的post.md问价,在文件头部加入下面的代码即可

top: #数字越大排序越靠前

最后如果你还遇到了其他的问题,欢迎留言,咱么自己解决!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值