Hexo 博客插件的开发
记录一下开发 Hexo 插件过程中的一些笔记。
processor API
官方文档年久失修,几乎不能用。
box 的文档中提到提供了 readSync
等方法,这些方法已经不在 box 中了,而是只接在 File 中了。hexo/lib/box/file.ts at master · hexojs/hexo
但是 file 只提供了读取的方法,没有提供写入或者持久化的方法,如果想做持久化,需要自己用 node 的写文件方法实现,或者用 hexo-fs
中的方法。
hexojs/hexo-fs: File system module for Hexo.
由于网上关于 process API 的资料很少,这里展示一下代码大概需要怎么写吧:
1 | // 匹配所有 _posts 目录下的 md 文件,但是不匹配下划线开头的文件 |
备注:博主原本是想开发一个在构建之前读取 .md
文件并修改其中一部分内容的插件,由于觉得持久化有可能会导致源文件损坏,感觉风险比较大,所以最后没有采用这个方案。不过读者可以根据上边的代码参考一下 processor API 的用法。
和性能相关的
先后经过 #3671、#3680、#3685,Hexo 在 open_graph() helper、meta_generator filter 和 external_link filter 中用正则表达式替代了 cheerio,并在 hexo-util#137 和 #3850 中将 toc() 所依赖的 cheerio 换成了更快的 htmlparser2。到了 Hexo 4.2,我们从 Hexo 中彻底去掉了 cheerio。