Hexo根据更新时间修改文章排序机制

💡 原文中文,约1000字,阅读约需3分钟。
📝

内容提要

Hexo博客更新了文章排序机制,改为按更新时间排序。作者记录了修改源文件代码的过程,以便后续参考。

🔎

延伸解读

为何常规配置方法无效

作者尝试了在博客源目录配置文件中添加updated_option: mtime,以及使用插件并设置order_by: updated,但均未成功。这表明Hexo的排序机制可能由核心生成器模块控制,而非通过简单配置或插件就能修改。读者在遇到类似问题时,可以优先检查生成器源码,而不是反复调整配置。

修改源码的具体位置与操作

解决方法位于Hexo源目录下的node_modules/hexo-generator-index/lib/generator.js文件中。需要将代码中的locals.posts.sort('-date')修改为locals.posts.sort('-updated')。这一行代码控制着首页文章列表的排序依据,修改后即可按更新时间排序。操作简单,但需注意直接修改node_modules中的文件可能在更新依赖时被覆盖。

修改后的维护注意事项

由于修改的是node_modules内的文件,当执行npm install或更新Hexo及其依赖时,该文件可能被重置,导致排序机制恢复原状。建议记录修改内容,或在版本控制中保留补丁,以便在依赖更新后重新应用。此外,若使用GitHub Action等自动化部署,需确保构建环境中的依赖版本一致,避免修改失效。

❓

Q&A

Hexo的文章排序机制是如何变化的?

Hexo的文章排序机制从按照创建时间排序改为按照更新时间排序。

作者是如何解决Hexo文章排序问题的?

作者通过修改源文件中的代码,具体是在generator.js文件中更改排序方式。

在修改Hexo排序机制时,作者尝试了哪些方法?

作者尝试了修改配置文件和使用插件,但都未能成功。

为什么作者决定修改Hexo的排序机制?

因为发现Hexo默认按照文章创建时间排序,而希望按照更新时间排序。

修改Hexo源文件的具体代码是什么?

在generator.js文件中,将'var posts = locals.posts.sort('-date');'修改为'var posts = locals.posts.sort('-updated');'。

作者记录修改过程的目的是什么?

作者记录修改源文件代码的过程是为了后续参考。

🏷️

标签

➡️

继续阅读