Hexo 2.7 已经发布,它带来了三个新功能。我将在下面介绍它们。
片段缓存
虽然 Hexo 速度很快,但如果您有成千上万的源文件或复杂的类别或标签,它可能会变慢。在数据模型升级之前,我借鉴了 Ruby on Rails 的一个功能:片段缓存。
片段缓存会保存片段内的内容,并在下次请求时提供缓存。片段只会被处理一次。它可以减少数据库查询并显著减少生成时间。例如,一个拥有 300 多个源文件的 Hexo 网站需要 6 分钟才能生成。在 Hexo 2.7 中,它只需要 10 秒!
它可以在标题、页脚、侧边栏或生成过程中不会更改的静态内容中使用。例如
<%- fragment_cache('header', function(){ |
通过使用 fragment_cache
帮助器,函数中的内容将被缓存。
局部帮助器也支持片段缓存,您只需要在使用局部帮助器时添加一个 {cache: true}
选项即可。
<%- partial('header', {}, {cache: true}) %> |
Landscape 已更新,现在支持片段缓存。您可以查看 这个提交,了解发生了哪些更改。
相对链接
从 Hexo 2.7 开始支持相对链接。但您的主题需要一些修改才能支持它。不过,它并不像您想象的那么难。您只需要在模板中将以下内容替换为
<%- config.root %><%- path %> |
url_for
帮助器。
<%- url_for(path) %> |
url_for
帮助器会自动为您添加 config.root
。如果您启用 relative_link
设置,它将添加一个相对路径。
Landscape 已更新以支持相对链接。您可以查看 这个提交,了解发生了哪些更改。
服务器中间件
如果您以前使用过 Connect 或 Express,您应该熟悉服务器中间件。 Connect 通过称为中间件的函数传递请求。您可以在中间件中对传入的请求做出响应。
在 Hexo 中,中间件作为一种过滤器。您可以通过注册一个新的过滤器来添加中间件。例如
hexo.extend.filter.register('server_middleware', function(app){ |
这个中间件添加一个 X-Powered-By
头并把请求传递到下一个中间件。