2026-01-25 23:29:41 +01:00
|
|
|
/// Params:
|
|
|
|
|
/// Resources: Where to search for images
|
|
|
|
|
/// Image: Image URL
|
2026-03-05 17:58:40 +01:00
|
|
|
/// Context: page context (used to access the configuration)
|
2020-09-11 16:27:23 +02:00
|
|
|
|
2026-01-25 23:29:41 +01:00
|
|
|
/// Returns:
|
2026-03-04 13:05:17 +01:00
|
|
|
/// Resource: Hugo image resource object
|
2026-01-25 23:29:41 +01:00
|
|
|
/// Permalink: Image URL
|
|
|
|
|
/// Height: Image height
|
|
|
|
|
/// Width: Image width
|
2020-09-11 18:13:39 +02:00
|
|
|
|
2026-03-06 00:13:13 +01:00
|
|
|
{{ $result := dict }}
|
2026-01-25 23:29:41 +01:00
|
|
|
|
2026-01-30 15:07:14 +01:00
|
|
|
{{ if .Image }}
|
2026-01-25 23:29:41 +01:00
|
|
|
{{ $url := urls.Parse .Image }}
|
2026-03-04 13:05:17 +01:00
|
|
|
{{ $permalink := .Image }}
|
2026-04-26 20:20:51 +02:00
|
|
|
|
|
|
|
|
{{ $result = dict
|
2026-03-08 13:18:21 +01:00
|
|
|
"Resource" nil
|
|
|
|
|
"Permalink" $permalink
|
|
|
|
|
"Height" nil
|
|
|
|
|
"Width" nil
|
|
|
|
|
}}
|
2026-04-26 20:20:51 +02:00
|
|
|
{{ $resource := dict }}
|
2026-03-05 17:58:40 +01:00
|
|
|
{{ $local := true }}
|
2026-03-04 13:05:17 +01:00
|
|
|
|
2026-01-25 23:29:41 +01:00
|
|
|
{{ if not (in (slice "https" "http") $url.Scheme) }}
|
2026-03-04 13:05:17 +01:00
|
|
|
{{/* Local image */}}
|
2026-01-30 15:07:14 +01:00
|
|
|
{{ $resource = .Resources.Get (printf "%s" (.Image | safeURL)) }}
|
|
|
|
|
{{ else }}
|
2026-03-04 13:05:17 +01:00
|
|
|
{{/* Remote image */}}
|
2026-03-08 13:18:21 +01:00
|
|
|
{{ with try (resources.GetRemote $url (dict "timeout" .Context.Site.Params.imageProcessing.external.timeout)) }}
|
2026-01-30 15:07:14 +01:00
|
|
|
{{ with .Err }}
|
2026-03-08 13:18:21 +01:00
|
|
|
{{ warnf "Failed to fetch remote resource %q: %s" $url . }}
|
2026-01-30 15:07:14 +01:00
|
|
|
{{ else with .Value }}
|
|
|
|
|
{{ $resource = . }}
|
2026-03-05 17:58:40 +01:00
|
|
|
{{ $local = false }}
|
2026-01-30 15:07:14 +01:00
|
|
|
{{ else }}
|
2026-03-08 13:18:21 +01:00
|
|
|
{{ warnf "Unable to get remote resource %q" $url }}
|
2026-01-30 15:07:14 +01:00
|
|
|
{{ end }}
|
|
|
|
|
{{ end }}
|
|
|
|
|
{{ end }}
|
|
|
|
|
|
2026-03-05 17:58:40 +01:00
|
|
|
{{ if $resource }}
|
|
|
|
|
{{ if and .Context.Site.Params.imageProcessing.autoOrient (reflect.IsImageResourceProcessable $resource) }}
|
|
|
|
|
{{ $filter := images.AutoOrient }}
|
|
|
|
|
{{ $resource = $resource | images.Filter $filter }}
|
|
|
|
|
{{ end }}
|
2026-03-06 00:13:13 +01:00
|
|
|
|
|
|
|
|
{{ if $local }}
|
|
|
|
|
{{ $permalink = $resource.RelPermalink }}
|
|
|
|
|
{{ end }}
|
|
|
|
|
|
2026-03-05 17:58:40 +01:00
|
|
|
{{ if reflect.IsImageResourceWithMeta $resource }}
|
2026-01-25 23:29:41 +01:00
|
|
|
{{ $result = dict
|
2026-01-30 15:07:14 +01:00
|
|
|
"Resource" $resource
|
2026-03-04 13:05:17 +01:00
|
|
|
"Permalink" $permalink
|
2026-01-25 23:29:41 +01:00
|
|
|
"Height" $resource.Height
|
|
|
|
|
"Width" $resource.Width
|
|
|
|
|
}}
|
2026-03-04 13:05:17 +01:00
|
|
|
{{ else }}
|
|
|
|
|
{{ $result = dict
|
|
|
|
|
"Resource" $resource
|
|
|
|
|
"Permalink" $permalink
|
|
|
|
|
"Height" nil
|
|
|
|
|
"Width" nil
|
|
|
|
|
}}
|
|
|
|
|
{{ end }}
|
2020-09-11 16:27:23 +02:00
|
|
|
{{ end }}
|
2020-09-10 18:53:36 +02:00
|
|
|
{{ end }}
|
|
|
|
|
|
2026-01-25 23:29:41 +01:00
|
|
|
{{ return $result }}
|