From 0c405e87f37623323125d43ee61237e931ada441 Mon Sep 17 00:00:00 2001 From: Nikita Shubin Date: Sun, 17 May 2026 12:02:16 +0300 Subject: template: add custom render-link template to handle .md references Convert markdown links ending with .md to proper page permalinks. If the target page is not found, warn and fallback to /base-name/. This is required for leaving relative markdown links as is in content repo and transform them only during hugo build. Signed-off-by: Nikita Shubin --- template/layouts/_default/_markup/render-link.html | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 template/layouts/_default/_markup/render-link.html diff --git a/template/layouts/_default/_markup/render-link.html b/template/layouts/_default/_markup/render-link.html new file mode 100644 index 0000000..a3bc8bf --- /dev/null +++ b/template/layouts/_default/_markup/render-link.html @@ -0,0 +1,22 @@ +{{- $dest := .Destination -}} +{{- if strings.HasSuffix $dest ".md" -}} + {{- $clean := $dest | strings.TrimPrefix "./" | strings.TrimPrefix "../" | strings.TrimPrefix "/" -}} + {{- $base := strings.TrimSuffix ".md" $clean -}} + + {{- $target := site.GetPage $base -}} + {{- if not $target -}} + {{- $target = site.GetPage (printf "%s.md" $base) -}} + {{- end -}} + + {{- if $target -}} + {{- $dest = $target.RelPermalink -}} + {{- else -}} + {{- $fallback := printf "/%s/" $base -}} + {{- warnf "Markdown link not found: %s → %s" $dest $fallback -}} + {{- $dest = $fallback -}} + {{- end -}} +{{- end -}} + + + {{- .Text | safeHTML -}} + -- cgit v1.2.3