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
,並將請求傳遞給下一個中介軟體。