Justin Chen 1eb4b9ea23
fix: link render hook produces dangling links when base URL has additional segments (#660)
* fix: link render hook produces dangling links when base URL has additional segments

* fix: incorrect fragment character in image render hook
2025-04-09 22:47:02 +01:00

17 lines
756 B
HTML

{{- $dest := .Destination -}}
{{- $url := urls.Parse $dest -}}
{{- if and $dest (hasPrefix $dest "/") -}}
{{- with or (.PageInner.GetPage $url.Path) (.PageInner.Resources.Get $url.Path) (resources.Get $url.Path) -}}
{{- $query := cond $url.RawQuery (printf "?%s" $url.RawQuery) "" -}}
{{- $fragment := cond $url.Fragment (printf "#%s" $url.Fragment) "" -}}
{{- $dest = printf "%s%s%s" .RelPermalink $query $fragment -}}
{{- else -}}
{{- $dest = (relURL (strings.TrimPrefix "/" $dest)) -}}
{{- end -}}
{{- end -}}
{{- with . -}}
<a href="{{ $dest | safeURL }}" {{ with .Title }}title="{{ . }}"{{ end }}{{ if strings.HasPrefix .Destination "http" }}target="_blank" rel="noopener"{{ end }}>{{ .Text | safeHTML }}</a>
{{- end -}}