{{/* S'il n'y a pas de / dans l'url d'un lien alors on ajoute le path du répertoire */}} {{ $isExternalLink := strings.HasPrefix .Destination "http" }} {{ $isNotWebLink := or (not $isExternalLink) (eq 1 (strings.Count .Destination ":")) }} {{ $isTelLink := strings.HasPrefix .Destination "tel:" }} {{ $isMailtoLink := strings.HasPrefix .Destination "mailto:" }} {{ $hasSlash := in .Destination "/" }} {{ $link := cond (or (or $isExternalLink $isNotWebLink) $hasSlash) .Destination (path.Join "/" .Page.Dir .Destination) }} {{ if $isNotWebLink }} {{- $separators := cond $isMailtoLink ":@." ":" -}} {{- $regex := cond $isMailtoLink "[a-z]*:(.*)" "[a-z]*:([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})"}} {{- $replace := cond $isMailtoLink "$1" "$1 $2 $3 $4 $5" -}} {{- $string := $link -}} {{- $params := slice -}} {{- range split $separators "" }} {{ $parts := split $string . }} {{ $params = $params | append (index $parts 0) }} {{ $string = index $parts 1 }} {{ end }} {{- $params = $params | append (string $string) -}} <span class="obfuscate{{ if $isMailtoLink }} at{{ end }}" data-separators="{{ $separators }}" {{ range $param_index, $param_value := $params }} data-param{{add $param_index 1}}="{{ range $index := seq (sub (len $param_value) 1) 0}}{{ substr $param_value $index 1}}{{ end }}" {{ end }} data-regex="{{ $regex }}" data-replace="{{ $replace }}" > </span> {{ else }} <a href="{{ $link | safeURL }}"{{ with .Title}} title="{{ . }}"{{ end }}{{ if $isExternalLink }} target="_blank" rel="noopener"{{ end }}>{{ .Text | safeHTML }}</a> {{ end }}