Hexo增加置顶属性

1 篇文章 0 订阅
1 篇文章 0 订阅

怎么置顶

  1. 每篇文章增加一个属性top,普通文章设置值为1,置顶文章设置为1以上。
title: Hexo增加置顶属性
date: 2018-09-14 14:57:57
top: 1
tags:
  - 博客
  - Hexo
  - 置顶
  1. 修改根目录配置文件/_config.yml,top值-1标示根据top值倒序(正序设置为1即可),同样date也是根据创建日期倒序。
index_generator:
  path: ''
  per_page: 10
  order_by:
    top: -1
    date: -1

* top的值每篇文章都要设置,如果没设置会导致部分排序不正确 *

说明(源码解读)

hexo置顶功能,也就是指定首页列表的排序,当前默认的是按照创建日期的倒叙,那我怎么才能修改?hexo整个结构就是核心的hexo包+扩展包,生成首页的是扩展插件node_modules/hexo-generator-index中。

从上面截图可以到到hexo.config.index_generator.order_by这个属性是配置index的排序,打开根目录下/_config.yml文件可以看大以下配置

index_generator:
  path: ''
  per_page: 10
  order_by: -date

那么我该怎么修改配置?打开node_modules/hexo-generator-index/lib/generator.js

从截图上可以看到是locals.posts.sort来排序,那么locals.posts又是什么对象,它的sort方法该传什么参数?locals是hexo的全局变量,应该是在核心包中,打开node_modules/hexo/hexo/index.js


从上图可以看出locals.posts是由db.model(‘Page’).find(query)返回的,那么db这个是什么?

const Database = require('warehouse');
...
this.database = new Database({
    version: dbVersion,
    path: pathFn.join(base, 'db.json')
  });
..
Hexo.prototype._bindLocals = function() {
  const db = this.database;
...

db是warehouse模块返回的,warehouse是hexo维护的一个json数据库,可以类似SQL来操作JSON。

那么根据上图API,明白了怎么添加参数。warehouse排序对于排序字段的值如果没有设置的话,排序就会乱掉,所以必须保证排序字段有值,且要是数字(字符串,简单的尝试了下,感觉比较乱)。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值