35 lines
1.2 KiB
HTML
35 lines
1.2 KiB
HTML
|
|
{{- $destination := .Destination -}}
|
||
|
|
{{- $url := urls.Parse .Destination -}}
|
||
|
|
|
||
|
|
{{- $isRemote := $url.IsAbs -}}
|
||
|
|
{{- $isFragment := strings.HasPrefix .Destination "#" -}}
|
||
|
|
|
||
|
|
{{- if and (not $isRemote) (not $isFragment) -}}
|
||
|
|
{{- $path := strings.TrimPrefix "./" $url.Path -}}
|
||
|
|
{{- $path = strings.TrimSuffix ".md" $path -}}
|
||
|
|
{{- $path = strings.TrimSuffix "/_index" $path -}}
|
||
|
|
|
||
|
|
{{- with (.Page.GetPage $path) -}}
|
||
|
|
{{- $destination = .RelPermalink -}}
|
||
|
|
{{- else with (.Page.Resources.Get $path) -}}
|
||
|
|
{{- $destination = .RelPermalink -}}
|
||
|
|
{{- else with (resources.Get $path) -}}
|
||
|
|
{{- $destination = .RelPermalink -}}
|
||
|
|
{{- else -}}
|
||
|
|
{{- $mode := .Page.Site.Params.BookPortableLinks -}}
|
||
|
|
{{- $message := printf "Image reference '%s' not found in '%s'" .Destination .Page.RelPermalink -}}
|
||
|
|
{{- if eq $mode "warning" -}}
|
||
|
|
{{- warnf $message -}}
|
||
|
|
{{- else if eq $mode "error" -}}
|
||
|
|
{{- errorf $message -}}
|
||
|
|
{{- end -}}
|
||
|
|
{{- end -}}
|
||
|
|
|
||
|
|
{{- with $url.RawQuery -}}
|
||
|
|
{{- $destination = print $destination "?" . -}}
|
||
|
|
{{- end -}}
|
||
|
|
{{- with $url.Fragment -}}
|
||
|
|
{{- $destination = print $destination "#" . -}}
|
||
|
|
{{- end -}}
|
||
|
|
{{- end -}}
|
||
|
|
{{- return $destination -}}
|