diff options
Diffstat (limited to 'themes/default/layouts/_default')
-rw-r--r-- | themes/default/layouts/_default/_markup/render-link.html | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/themes/default/layouts/_default/_markup/render-link.html b/themes/default/layouts/_default/_markup/render-link.html index 8f51a57..0eaa9bd 100644 --- a/themes/default/layouts/_default/_markup/render-link.html +++ b/themes/default/layouts/_default/_markup/render-link.html @@ -1,17 +1,28 @@ {{- $link := .Destination -}} -{{ $isRemote := strings.HasPrefix $link "http" }} -{{- if not $isRemote -}} -{{ $url := urls.Parse .Destination }} -{{- if $url.Path -}} -{{ $fragment := "" }} -{{- with $url.Fragment }}{{ $fragment = printf "#%s" . }}{{ end -}} -{{- with .Page.GetPage $url.Path }}{{ $link = printf "%s%s" .Permalink $fragment }}{{ end }}{{ end -}} +{{- $url := urls.Parse $link -}} +{{- $site := urls.Parse .Page.Site.BaseURL -}} +{{- $local := or (eq $url.Host $site.Host) (strings.HasPrefix $link "/") -}} +{{- $remote := not $local -}} + +{{- if and $local $url.Path -}} + +{{- $fragment := "" -}} + + {{- with $url.Fragment -}} + {{- $fragment = printf "#%s" . -}} + {{- end -}} + + {{- with .Page.GetPage $url.Path -}} + {{- $link = printf "%s%s" .Permalink $fragment -}} + {{- end -}} + {{- end -}} + <a href="{{ $link | safeURL }}" {{ with or .Title ($link | safeURL) -}} title="{{ . }}" {{ end }} - {{- if $isRemote -}} + {{- if $remote -}} data-external rel="noopener no-referrer" {{ end }}>{{- .Text | safeHTML -}}</a> |