使用Hexo有一段时间,配合atom的目录管理功能,整体还算顺手,但归档页跟首页一样显示对应条数文章,打开归档页的时候有点别扭。去看主题作者博客的归档页却是一页显示的,别人能做,那咱也改一把。

原理分析

原以为这是主题的功能,查了资料才知道,这是Hexo解析插件的事,跟解析置顶排行一样,所以需要在Hexo的配置文件_config.yml中修改配置。

Hexo在生成静态页的时候,需要使用对应的插件:

  • hexo-generator-index #生成首页的
  • hexo-generator-archive #生成归档页的
  • hexo-generator-tag #生成标签页的

在原配置中,per_page: 10控制所有的分页配置,包括首页,归档页,tag分类页面,如后面的数字是10,那么所有的页面都是10条进行分页。

方法一

只单独控制归档里的分页,在Hexo配置中新增以下配置:

1
archive:  1

为了配置好管理,一般跟相关功能放一块

1
2
3
4
5
# Pagination
## Set per_page to 0 to disable pagination
per_page: 10
pagination_dir: page
archive: 1

方法二(推荐)

该方法对首页,归档及标签分别控制,Hexo能运行起来,一般这三个插件都安装过了,没安装的用以下命令安装。

1
2
3
$ npm install hexo-generator-index --save
$ npm install hexo-generator-archive --save
$ npm install hexo-generator-tag --save

Hexo的配置文件_config.yml中新增以下内容:

1
2
3
4
5
6
7
8
9
10
11
# 设置首页分页之前默认就有,这里就不额外加了
# index_generator:
# per_page: 5

archive_generator:
per_page: 40 #值为0表示不分页,按需填写
yearly: true #是否按年生成归档
monthly: false #为了加快生成速度,按月归档就不要了

tag_generator:
per_page: 40 #值为0表示不分页,按需填写

保存重启Hexo生效,或者直接生成静态页就看出效果了。

后记

根据上面的原理,依葫芦画瓢,我们也可以对分类展示页进行改造,以期与首页独立控制分页条数。

1
2
category_generator:
per_page: 40 #值为0表示不分页,按需填写

参考链接

首页分页和归档分页不同是如何做到的? #30