diff options
Diffstat (limited to 'themes/default/layouts/_default/_markup/render-link.html')
-rw-r--r-- | themes/default/layouts/_default/_markup/render-link.html | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/themes/default/layouts/_default/_markup/render-link.html b/themes/default/layouts/_default/_markup/render-link.html index 17a6f2c..ccfbc06 100644 --- a/themes/default/layouts/_default/_markup/render-link.html +++ b/themes/default/layouts/_default/_markup/render-link.html @@ -1,21 +1,31 @@ {{- $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 + {{- if $remote }} + rel="noopener no-referrer" + {{- else }} + data-internal="" + {{- end }} href="{{ $link | safeURL }}" {{ with or .Title ($link | safeURL) -}} title="{{ . }}" - {{ end }} - {{- if $isRemote -}} - target="_blank" - rel="noopener no-referrer" - {{ end }}> - {{- .Text | safeHTML -}} -</a> + {{ end }}>{{ .Text | safeHTML }}</a> {{- /* This comment removes trailing newlines and white spaces. */ -}} |