diff --git a/layouts/_markup/render-link.html b/layouts/_markup/render-link.html
new file mode 100644
index 0000000..441baf9
--- /dev/null
+++ b/layouts/_markup/render-link.html
@@ -0,0 +1,17 @@
+{{- $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 -}}
+ {{/* Keep absolute paths as-is, don't use relURL */}}
+ {{- $dest = $dest -}}
+ {{- end -}}
+{{- end -}}
+
+{{- with . -}}
+ {{ .Text | safeHTML }}
+{{- end -}}
\ No newline at end of file