{{- $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 -}} {{- with .Text | safeHTML }}{{ . }}{{ end -}} {{- with $scratch.Get "icon" -}}{{- partial "icon.html" . -}}{{- end -}} {{- /* chomp trailing newline */ -}}