2022.12.29更新,把原本分出去的一章合并到这里来了,就是解决上下页只显示同一分类的问题,很短没必要单独分一篇文章出去
这几天集中更新文章,突然发现hexo g
的时候显示高亮错误,因为以前一直是提交到git自动生成文章,所以也没有仔细查看过日志
主要也是因为只有在生成的时候报警告,并不影响使用,这次是想要调一下主题样式才发现的,那么就需要对插件进行升级了(快一年没升级了,我的hexo版本还是5.4,现在已经6.3了)
升级hexo及插件
node及npm升级网上很多方法,搜一下就有
- 查看hexo版本:
hexo version
- 全局升级:
npm i hexo-cli -g
- 定位到hexo目录
- 检查插件:
npm-check
- 可以根据提示手动升级,也可直接:
npm-upgrade
+npm update --save
- 再次查看版本号确认:
hexo version
检查自己修改的地方是否被覆盖
升级本身是没啥问题的,只是使用的时候,由于不爱写注释,所以可能自己手动修改了某些插件后来忘记了,这次一升级就覆盖掉了。
我主要改的系统插件有两个:
hexo-generator-index 如文章所述,我从主页里面去掉了几个分类,不修改的话分页的页面里面还包含这个分类的文章,就会导致页面上的文章数不对
hexo-generator-category
,这个我也改了,但是给忘的彻彻底底的,导致我小说分类里面的排序出现了问题,直接用git修改比较才找到原因,汗一个…
1 | ; |
赶紧手动记录一下升级过程,省的以后再升级又忘记了,最后展示的效果就很好
上下页链接只显示同一分类的文章
我的hexo有一个遗留问题,就是文章的上下文地址,这个地址是在系统分页的时候甚至更早就创建了,原本的逻辑是没有问题的,但是我想让他根据随笔、经验、小说三个分类生成三个不同的上下文对应地址
也就是说我的网站是三个导航分属三个categories
,那么在进入文章里面,页脚部分的上一页和下一页的标题和连接,其实还是整体全部文章按date
顺序排列的,因此比如你在随笔里面点下一页有可能会点到经验分享里面的文章,有点别扭,这里就解决这个问题。
由于每个人的主题不同,所以对应文章页面的ejs
的写法也可能有所不同,这里直接上原码来说明一下(很丑,绝对不是最佳实践,但能用,有大神看到想帮我优化一下求留言[偷笑])
我把ejs语法的以及html语法注释掉了,为了更好的显示js代码
这是写在post.ejs文件里的
1 | var tmpNext = page.next; //将当前页的下一页对象给个变量 |
我发现用源码讲不清楚,也是因为我写的太暴力了吧,还是简单说明一下:
- 先判断是否有下一页
- 再判断当前页和下一页的分类是否一致,不一致的话找下一个大怨种
- 当前页和下一页一致的时候,再判断是否是小说分类,不是的话直接就是它了
- 当前页是小说分类的时候,再判断二级分类(我的小说根据二级分类来存放合集),不是的话找下一个大怨种
- 当前页是小说分类,且属于一个合集,那就是它了
这样就完美实现了我的需求:
- 随笔和经验分类所有文章挂接上下页
- 小说分类按合集来挂接上下页
我是觉得还有更优的写法,而且其他主题应该会有跟我一样的需求吧,不过既然喜欢这个主题,我也懒得去研究其他主题了。毕竟个人网站最重要的还是内容,能满足功能就先用着吧。