{{- $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 */ -}}