HUGO
Menu
GitHub 89677 stars Mastodon

Resources

Returns a collection of page resources.

Syntax

PAGE.Resources

Returns

resource.Resources

The Resources method on a Page object returns a collection of page resources. A page resource is a file within a page bundle.

To work with global or remote resources, see the resources functions.

Methods

Use these methods on the Resources object.

ByType
(resource.Resources) Returns a collection of page resources of the given media type, or nil if none found. The media type is typically one of image, text, audio, video, or application.
{{ range .Resources.ByType "image" }}
  <img src="{{ .RelPermalink }}" width="{{ .Width }}" height="{{ .Height }}" alt="">
{{ end }}

When working with global resources instead of page resources, use the resources.ByType function.

Get
(resource.Resource) Returns a page resource from the given path, or nil if none found.
{{ with .Resources.Get "images/a.jpg" }}
  <img src="{{ .RelPermalink }}" width="{{ .Width }}" height="{{ .Height }}" alt="">
{{ end }}

When working with global resources instead of page resources, use the resources.Get function.

GetMatch
(resource.Resource) Returns the first page resource from paths matching the given glob pattern, or nil if none found.
{{ with .Resources.GetMatch "images/*.jpg" }}
  <img src="{{ .RelPermalink }}" width="{{ .Width }}" height="{{ .Height }}" alt="">
{{ end }}

When working with global resources instead of page resources, use the resources.GetMatch function.

Match
(resource.Resources) Returns a collection of page resources from paths matching the given glob pattern, or nil if none found.
{{ range .Resources.Match "images/*.jpg" }}
  <img src="{{ .RelPermalink }}" width="{{ .Width }}" height="{{ .Height }}" alt="">
{{ end }}

When working with global resources instead of page resources, use the resources.Match function.

Mount
New in v0.140.0
(resource.ResourceGetter) Mounts the given resources, remapping from the base path (first argument) to the target path (second argument), and returns a resource getter. A leading slash in the target marks an absolute path. Relative target paths allow you to mount resources relative to another set, such as a page bundle:
{{ $common := resources.Match "/js/headlessui/*.*" }}
{{ $importContext := (slice $.Page ($common.Mount "/js/headlessui" ".")) }}

Pattern matching

With the GetMatch and Match methods, Hugo determines a match using a case-insensitive glob pattern.

PathPatternMatch
images/foo/a.jpgimages/foo/*.jpgtrue
images/foo/a.jpgimages/foo/*.*true
images/foo/a.jpgimages/foo/*true
images/foo/a.jpgimages/*/*.jpgtrue
images/foo/a.jpgimages/*/*.*true
images/foo/a.jpgimages/*/*true
images/foo/a.jpg*/*/*.jpgtrue
images/foo/a.jpg*/*/*.*true
images/foo/a.jpg*/*/*true
images/foo/a.jpg**/*.jpgtrue
images/foo/a.jpg**/*.*true
images/foo/a.jpg**/*true
images/foo/a.jpg**true
images/foo/a.jpg*/*.jpgfalse
images/foo/a.jpg*.jpgfalse
images/foo/a.jpg*.*false
images/foo/a.jpg*false