HEXO添加置顶功能

HEXO添加置顶功能,第1张

概述参考 https://zhwhong.cn/2017/03/23/deal-with-hexo-article-top-problem/ 原理:在Hexo生成首页HTML时,将top值高的文章排在前面,达到置顶功能。 修改Hexo文件夹下的node_modules/hexo-generator-index/lib/generator.js,在生成文章之前进行文章top值排序。 需添加的代码: po

参考 https://zhwhong.cn/2017/03/23/deal-with-hexo-article-top-problem/

原理:在Hexo生成首页HTML时,将top值高的文章排在前面,达到置顶功能

修改Hexo文件夹下的node_modules/hexo-generator-index/lib/generator.Js,在生成文章之前进行文章top值排序。

需添加的代码:

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; // 都没定义按照文章日期降序排});

修改完成后,只需要在front-matter中设置需要置顶文章的top值,将会根据top值大小来选择置顶顺序top值越大越靠前。需要注意的是,这个文件不是主题的一部分,也不是Git管理的,备份的时候比较容易忽略。

以下是最终的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);  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    }  });};
总结

以上是内存溢出为你收集整理的HEXO添加置顶功能全部内容,希望文章能够帮你解决HEXO添加置顶功能所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1065949.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存