summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--template/layouts/_default/_markup/render-link.html22
1 files changed, 22 insertions, 0 deletions
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 -}}
+
+<a href="{{ $dest | safeURL }}" {{ with .Title }}title="{{ . }}"{{ end }}>
+ {{- .Text | safeHTML -}}
+</a>