resources

resources.ExecuteAsTemplate

返回由 Go 模板创建的资源,它用给定上下文解析并执行。

签名
resources.ExecuteAsTemplate TARGETPATH CONTEXT RESOURCE
返回类型
resource.Resource

resources.ExecuteAsTemplate 函数返回由 Go 模板创建的资源,它用给定上下文解析并执行,并以目标路径作为缓存键缓存结果。

调用资源的 Publish、Permalink 或 RelPermalink 方法时,Hugo 会把该资源发布到目标路径。

假设你有一个 CSS 文件,希望用项目配置中的值填充它:

assets/css/template.css
body {
  background-color: {{ site.Params.style.bg_color }};
  color: {{ site.Params.style.text_color }};
}

而项目配置中包含:

[params.style]
bg_color = '#fefefe'
text_color = '#222'

把下面的代码放进 baseof.html 模板:

{{ with resources.Get "css/template.css" }}
  {{ with resources.ExecuteAsTemplate "css/main.css" $ . }}
    <link rel="stylesheet" href="{{ .RelPermalink }}">
  {{ end }}
{{ end }}

上面的示例:

  1. 把该模板捕获为资源
  2. 以当前页面作为上下文,把该资源作为模板执行
  3. 把该资源发布到 css/main.css

结果是:

public/css/main.css
body {
  background-color: #fefefe;
  color: #222;
}