mirror of
https://github.com/gohugoio/hugo.git
synced 2024-12-04 17:36:45 -05:00
14d85ec136
The page images selection order as follows: 1. Page's images parameter, image resources are supported. 2. Page's image resources that naming in *feature*, *cover* or *thumbnail* pattern. 3. If no page images specified, then the first one of site's images will be used as the fallback, supports site resources.
47 lines
1.4 KiB
HTML
47 lines
1.4 KiB
HTML
{{- $imgs := slice }}
|
|
{{- $imgParams := .Params.images }}
|
|
{{- $resources := .Resources.ByType "image" -}}
|
|
{{/* Find featured image resources if the images parameter is empty. */}}
|
|
{{- if not $imgParams }}
|
|
{{- $featured := $resources.GetMatch "*feature*" -}}
|
|
{{- if not $featured }}{{ $featured = $resources.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
|
|
{{- with $featured }}
|
|
{{- $imgs = $imgs | append (dict
|
|
"Image" .
|
|
"RelPermalink" .RelPermalink
|
|
"Permalink" .Permalink) }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{/* Use the first one of site images as the fallback. */}}
|
|
{{- if and (not $imgParams) (not $imgs) }}
|
|
{{- with site.Params.images }}
|
|
{{- $imgParams = first 1 . }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{/* Parse page's images parameter. */}}
|
|
{{- range $imgParams }}
|
|
{{- $img := . }}
|
|
{{- $url := urls.Parse $img }}
|
|
{{- if eq $url.Scheme "" }}
|
|
{{/* Internal image. */}}
|
|
{{- with $resources.GetMatch $img -}}
|
|
{{/* Image resource. */}}
|
|
{{- $imgs = $imgs | append (dict
|
|
"Image" .
|
|
"RelPermalink" .RelPermalink
|
|
"Permalink" .Permalink) }}
|
|
{{- else }}
|
|
{{- $imgs = $imgs | append (dict
|
|
"RelPermalink" (relURL $img)
|
|
"Permalink" (absURL $img)
|
|
) }}
|
|
{{- end }}
|
|
{{- else }}
|
|
{{/* External image */}}
|
|
{{- $imgs = $imgs | append (dict
|
|
"RelPermalink" $img
|
|
"Permalink" $img
|
|
) }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- return $imgs }}
|