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 可以在执行数千或数百万次的模板中使用,而不会对构建性能产生负面影响。