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 -}}