vanilla-hugo/layouts/_default/_markup/render-link.html
Danila Fedorin 8b6874ec75 Allow disabling external-links-in-new-tab
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2024-06-24 17:51:46 -07:00

32 lines
1.2 KiB
HTML

{{- $scratch := newScratch -}}
{{- $absoluteDest := absLangURL .Destination -}}
{{- $siteRootUrl := absLangURL "" -}}
{{- $isExternal := not (hasPrefix $absoluteDest $siteRootUrl) -}}
{{- $isSamePage := hasPrefix .Destination "#" -}}
{{- if $isSamePage -}}
{{- $scratch.Set "class" "same-page-link" -}}
{{- if index (.Page.Scratch.Get "definedSections") .Destination -}}
{{- $scratch.Set "icon" "arrow-up" -}}
{{- else -}}
{{- /* Do not render "down" links because don't know how to distinguish unseen titles from paragraph links. */ -}}
{{- /* $scratch.Set "icon" "arrow-down" */ -}}
{{- end -}}
{{- else if $isExternal -}}
{{- $scratch.Set "class" "external-link" -}}
{{- $scratch.Set "icon" "external-link" -}}
{{- end -}}
<a href="{{ .Destination | safeURL }}"
{{- with .Title }} title="{{ . }}"{{ end -}}
{{- with $scratch.Get "class" -}}
class="{{ . }}"
{{- end -}}
{{- if (and site.Params.externalLinksInNewTab $isExternal) -}}
target="_blank" rel="noopener noreferrer"
{{- end -}}
>
{{- with .Text | safeHTML }}{{ . }}{{ end -}}
{{- with $scratch.Get "icon" -}}{{- partial "icon.html" . -}}{{- end -}}
</a>
{{- /* chomp trailing newline */ -}}