是否可以将Hugo 0.32的新图像处理功能用于其他文件夹中的图像?
例如,我的网站已经采用一种格式,所有媒体都位于单独的/content/images
文件夹中,而不是作为网页包在每个条目旁边。
答案 0 :(得分:5)
可以从它的引用访问页面的资源,所以这可以通过非常简单的设置实现。
在_index.md
文件夹中创建content/images
文件,其简单的正面内容类似于以下内容。
content/images/_index.md
---
title: Media Folder
---
这将允许您从站点上下文访问该部分中的images
资源并获取该页面。如果您不希望它在您发布的网站上显示为实际页面,则可以添加headless: true
。
{{ with .Site.GetPage "section" "images" }}
<h2>{{ .Title }}</h2>
{{ $resources := .Resources.ByType "image"}}
{{ range $resources }}
{{ with . }}
<img style="max-width: 100%;" src="{{ .RelPermalink }}">
<br />
{{ end }}
{{ end }}
{{ end }}
{{ with .Site.GetPage "section" "images" }}
<h2>From {{ .Title }} (images)</h2>
{{ $resources := .Resources.ByType "image"}}
{{ range $resources }}
{{ with . }}
{{ $image200x := (.Resize "200x") }}
{{ $image400x := (.Resize "400x") }}
<img src="{{ $image200x.RelPermalink }}">
<img src="{{ $image400x.RelPermalink }}">
<br />
{{ end }}
{{ end }}
{{ end }}
这些示例用于说明如何从捆绑包中的其他位置访问images
位置内的资源。您还可以使用.Resources.GetByPrefix "logo"
直接获取图像资源,按名称访问单个图像。
在页面的前面,您将包含一个字段imagename: logo
作为示例,然后:
{{ $page := . }}
{{ with .Site.GetPage "section" "images" }}
{{ with .Resources.GetByPrefix $page.Params.imagename }}
{{ $image200x := (.Resize "200x") }}
{{ $image400x := (.Resize "400x") }}
<img src="{{ $image200x.RelPermalink }}">
<img src="{{ $image400x.RelPermalink }}">
<br />
{{ end }}
{{ end }}
注意:您也可以从降价处访问这些图片,但这需要像Hugo
文档中那样设置短代码,并且我在GitHub示例中包含了一个短代码示例链接如下。