Hexo归档页

2026-02-04 粥记捣蛋 Hexo Hexo , 归档(Archive) , 自定义 , 分页

本文主要讲解我在使用HEXO做归档页时遇到的问题以及解决方案。

已知信息
① HEXO 通过 hexo-generator-archive 做分页信息的处理工作。
② HEXO 无需定义归档页面模板
③ HEXO 归档页路径信息为 /archives

Q1:我定义了一个名为 archives.ejs,但是跳转失败了

当时情况:想自定义归档页面的显示方式,参考其他页面,结合跳转逻辑和文件名一致的默认设定,layout文加下创建了 archives.ejs,点击链接只是刷新了页面,并没有跳转到目标页面

解决方法:将 archives.ejs 更改为 archive.ejs,将复数更改为单数即可。

链接使用:<%= url_for('archives') %>
归档Ejs名字:archive.ejs

我是百思不得分解,在一个错误的操作下得到了正确答案,一直认为是代码的问题,更改配置参数,更改链接方式,结果忘了吧测试文件的名字更改回去,阴差阳错的情况下搞定了

可为什么会这样呢?

Hexo 的这种设计是为了:

  1. 符合英语习惯 :路径使用复数形式(如 archives、tags、categories)
  2. 模板文件简洁 :模板文件使用单数形式(如 archive.ejs、tag.ejs、category.ejs)
  3. 自动映射 :通过自动的单复数映射,减少配置的复杂性

Q2:自定义了归档页模板,却拿不到分页参数

当时情况:想通过不借助插件去实现分页功能,创建了归档页模板,结果 page 信息没有必要的分页信息,如总页数,当前页这些信息,
于是手写分页功能,写完后,但是一想到还需要把参数记录到本地存储就很难受,因为是静态的,要改变页面数据刷新就需要全局刷新而非局部刷新,还是决定用插件省事儿,也方便后续维护。

放弃原因:需要本地存储来回折腾弄一些额外操作,之后要是要做分页调整,需要额外调整相关代码,重复造轮子不可取。