Hugo Pipes
Hugo Pipes 是 Hugo 的資源處理函數集。
在 assets 中查找資源
這是關於全局和遠程資源的內容。
- 全局資源
assets目錄內的文件,或 掛載 到assets目錄的任何目錄內的文件。- 遠程資源
- 遠程服務器上的文件,可通過 HTTP 或 HTTPS 訪問。
對於 .Page 作用域的資源,請參閱 頁面資源 部分。
獲取資源
為了使用 Hugo Pipes 處理資源,必須將其檢索為資源。
對於全局資源,使用:
對於遠程資源,使用:
有關 resources 包的所有模板函數的最新概述,請參閱 GoDoc 頁面。
復制資源
請參閱 resources.Copy 函數。
資源目錄
資源文件必須存儲在資源目錄中。默認情況下是 assets,但可以通過配置文件的 assetDir 鍵進行配置。
資源發布
當您調用 .Permalink、.RelPermalink 或 .Publish 時,Hugo 將資源發布到 publishDir(通常是 public)。您可以使用 .Content 來內聯資源。
Go Pipes
為了提高可讀性,本文檔的 Hugo Pipes 示例將使用 Go Pipes 編寫:
{{ $style := resources.Get "sass/main.scss" | css.Sass | resources.Minify | resources.Fingerprint }}
<link rel="stylesheet" href="{{ $style.Permalink }}">緩存
Hugo Pipes 調用基於整個 pipe 鏈 進行緩存。
pipe 鏈的示例:
{{ $mainJs := resources.Get "js/main.js" | js.Build "main.js" | minify | fingerprint }}pipe 鏈僅在站點構建中首次遇到時調用,否則結果從緩存加載。因此,Hugo Pipes 可以在執行數千或數百萬次的模板中使用,而不會對構建性能產生負面影響。