From 1eb4b9ea234aae900d03b4313b12a293a0969a51 Mon Sep 17 00:00:00 2001 From: Justin Chen Date: Thu, 10 Apr 2025 05:47:02 +0800 Subject: [PATCH] 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 --- layouts/_default/_markup/render-image.html | 2 +- layouts/_default/_markup/render-link.html | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/layouts/_default/_markup/render-image.html b/layouts/_default/_markup/render-image.html index 5c00c4c..6c571f2 100644 --- a/layouts/_default/_markup/render-image.html +++ b/layouts/_default/_markup/render-image.html @@ -13,7 +13,7 @@ {{- with or (.PageInner.Resources.Get $url.Path) (resources.Get $url.Path) -}} {{/* Images under assets directory */}} {{- $query := cond $url.RawQuery (printf "?%s" $url.RawQuery) "" -}} - {{- $fragment := cond $url.Fragment (printf "?%s" $url.Fragment) "" -}} + {{- $fragment := cond $url.Fragment (printf "#%s" $url.Fragment) "" -}} {{- $dest = printf "%s%s%s" .RelPermalink $query $fragment -}} {{- else -}} {{/* Images under static directory */}} diff --git a/layouts/_default/_markup/render-link.html b/layouts/_default/_markup/render-link.html index 0307f8e..247a710 100644 --- a/layouts/_default/_markup/render-link.html +++ b/layouts/_default/_markup/render-link.html @@ -1,3 +1,16 @@ -{{- with . -}} - {{ .Text | safeHTML }} +{{- $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 . -}} + {{ .Text | safeHTML }} {{- end -}}