美文网首页
Hexo博客添加文章置顶功能

Hexo博客添加文章置顶功能

作者: TIMDING | 来源:发表于2018-06-26 14:23 被阅读0次

原来用的WordPress,直接很方便地管理置顶文章,Hexo只提供了按发布日期的排序,只好网上找了些资料修改。

原理:在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;
    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博客添加文章置顶功能

    原来用的WordPress,直接很方便地管理置顶文章,Hexo只提供了按发布日期的排序,只好网上找了些资料修改。 ...

  • 新增Hexo博客文章置顶功能

    博主博客地址 修改Hexo文件夹下的node_modules/hexo-generator-index/lib/g...

  • Hexo添加置顶功能

    1. 修改node_modules/hexo-generator-index/lib/generator.js 2...

  • 给博客添加文章目录

    前言 因为JSimple主题没有自带目录,所以需要自己动手给hexo博客文章添加目录功能。 第一步 查阅hexo文...

  • hexo实现文章置顶功能

    想将写好的一些文章置顶,但是hexo好像默认不提供这个功能,希望以后的版本会有。这里简单写一下实现hexo文章置顶...

  • Hexo博客添加在线联系功能

    title: Hexo博客添加在线联系功能date: 2018-08-29 21:03:11tags:- 博客- ...

  • 解决Hexo博客文章置顶问题

    见博客:http://zhwhong.ml/2017/03/23/deal-with-hexo-article-t...

  • 纯银简书文章整理

    无标题笔记:博客作者去向无标题笔记:评论功能无标题文章:微博置顶功能无标题文章:微博置顶、用户分组功能无标题文章:...

  • Hexo博客添加打赏功能

    前言 当你的博客搭建好之后,你或许想要添加一些更有趣的功能,比如说打赏,虽然说现在是共享经济,但也有付费阅读的需求...

  • hexo博客添加评论功能

    在博客中加入了评论功能,发现网上以前的一些方法已经不适用,所以就综合了一下网上的教程,记录一下实现过程。 一、添加...

网友评论

      本文标题:Hexo博客添加文章置顶功能

      本文链接:https://www.haomeiwen.com/subject/mxxmyftx.html