Hexo 在处理大型网站方面一直很糟糕。(#710, #1124, #283, #1187, #550, #1769, 等等)。我们努力解决这个问题,在 Hexo 3.2 中做了一些改进。
速度至上
缓存渲染内容
渲染后的内容被缓存到仓库中。这节省了大量时间,使热处理(第二次处理)快了 1.7 倍。
版本 | 3.1 | 3.2 |
---|---|---|
冷处理 | 6.094s | 6.454s |
热处理 | 5.154s | 3.002s |
延迟加载 highlight.js 的语言文件
highlight.js 很慢。特别是在它尝试检测语言时。延迟加载语言文件使处理速度更快,并且不需要加载一堆未使用的语言文件。但是,也有一些限制
- 必须禁用自动检测。
- 您必须在代码块中指定语言。
您可以在 _config.yml
中设置禁用自动检测。
highlight: |
模板预编译
如果可能,主题模板将被预编译。这使生成速度快了 2 倍。
版本 | 3.1 | 3.2 |
---|---|---|
冷生成 | 27.2s | 13.6s |
热生成 | 24.4s | 12.6s |
以下渲染器已经支持此功能。
并且为渲染器实现预编译很容易。只需向渲染器添加一个 compile
函数即可。以 EJS 渲染器为例
var ejs = require('ejs'); |
包含/排除源文件
您可以在 _config.yml
中包含/排除指定的源文件。
include: |