Hexo 2.7 已发布,包含三项新功能。我将在下面介绍这些功能。
片段缓存
尽管 Hexo 很快,但如果你有数千个源文件或复杂的类别或标签,它可能会变慢。在数据模型升级之前,我借用了 Ruby on Rails 的一项功能:片段缓存。
片段缓存将内容保存在一个片段中,并在收到下一个请求时提供缓存。片段只会处理一次。它可以显著减少数据库查询并缩短生成时间。例如,一个包含 300 多个源文件 Hexo 网站需要 6 分钟时间才能生成。而在 Hexo 2.7 中,它只需要 10 秒钟!
它可以用于在生成期间不会更改的页眉、页脚、侧边栏或静态内容。例如
<%- fragment_cache('header', function(){ |
通过使用 fragment_cache
辅助函数,函数中的内容将被缓存。
Partial 辅助函数也支持片段缓存,在使用 Partial 时你只需要添加一个 {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
并将此请求传递给下一个中间件。