hexo-generator-index-custom

支持置顶与隐藏文章的 Hexo 首页生成器插件。

在官方的首页生成器的基础上添加了使用 top 置顶文章和 hide 隐藏文章的功能。

与其他插件的区别

hexo-generator-index-pin-top

在官方版本的 hexo-generator-indexPR #51 前,大多数人置顶文章的方法是使用 hexo-generator-index-pin-top 插件。

hexo-generator-index-pin-top 插件支持置顶文章,但是不支持隐藏文章。

  • [x] 置顶文章
  • [ ] 隐藏文章

在翻源码的时候还发现了 该插件无法更改文章排序方式,排序方式固定为文章更新时间倒序。

hexo-generator-index2

在国内可以搜索到的大多数隐藏文章的教程是通过修改主题的渲染方式来实现的。

Hexo的Butterfly下如何隐藏部分文章不在首页显示 - 张洪Heo

这个方法有一个缺点,隐藏掉的文章也会占用页面的渲染个数,如果隐藏的文章过多,会影响第一页的观感。

hexo-generator-index2 支持隐藏指定 tag/categories 的文章,但是不支持直接置顶文章。

issues #12 中提到的置顶方法较为繁琐

  • [ ] 置顶文章
  • [x] 隐藏文章
  • [x] 显示指定的文章

hexo-generator-index

官方提供的 hexo-generator-index 支持置顶文章(PR #51 版本后),但是不支持隐藏文章。

且官方的置顶方式为:在文章配置中添加 sticky 属性,而大多数主题渲染置顶标签的方式是读取文章中的 top 属性。

使用 hexo-generator-index-pin-top 的用户也是使用的 top 属性控制置顶。

  • [x] 置顶文章(但是不支持 top
  • [ ] 隐藏文章

使用方法

安装

首先卸载掉已经安装的 generator-index 类插件,然后安装本插件。

1
2
3
4
5
6
7
8
9
10
$ npm uninstall hexo-generator-index

$ npm install hexo-generator-index-custom --save

# or yarn

$ yarn remove hexo-generator-index

$ yarn add hexo-generator-index-custom

配置

hexo-generator-index-custom 是直接 fork 官方的 hexo-generator-index 的,所以配置方式与官方的一样。

配置说明取自官方文档

在 _config.yml 中新增或修改如下配置:

1
2
3
4
5
index_generator:
path: ''
per_page: 10
order_by: -date
pagination_dir: page
  • path: Root path for your blog’s index page.
    • default: “”
  • per_page: Posts displayed per page.
    • default: config.per_page as specified in the official Hexo docs (if present), otherwise 10
    • 0 disables pagination
  • order_by: Posts order.
    • default: date descending
  • pagination_dir: URL format.
    • default: ‘page’
    • awesome-page makes the URL ends with ‘awesome-page/‘ for second page and beyond.

所有的配置均与官方首页生成器一样,不必修改。

使用

在文章开头的配置中添加 stickytop 参数,可以置顶文章。

sticky 的优先级比 top 高,故所有使用 sticky 都会排在 top 之前。

其值可以是 true 或数字,数字越大,文章排在越前面。

1
2
3
4
5
---
title: Hello World
date: 2013/7/13 20:46:25
sticky: 100
---
1
2
3
4
5
---
title: Hello World
date: 2013/7/13 20:46:25
top: 100
---

在文章开头的配置中添加 hide 参数,可以隐藏文章。

1
2
3
4
5
---
title: Hello World
date: 2013/7/13 20:46:25
hide: true
---

已知 Bug

隐藏的文章会占用总文章数量,会影响分页数量(尾页)。

真不想修了,将就用用 欢迎 PR 修复

v1.0.1 已修复(光速修复)

Others

TopImg Photo by Immo Wegmann on Unsplash