2021-03-13 00:17:54 +01:00
|
|
|
{{/*
|
|
|
|
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" }}
|
|
|
|
{{ $isWebLink := or $isExternalLink (eq 0 (.Destination | strings.Count ":")) }}
|
|
|
|
{{ $isTelLink := strings.HasPrefix .Destination "tel:" }}
|
|
|
|
{{ $isMailtoLink := strings.HasPrefix .Destination "mailto:" }}
|
|
|
|
{{ $hasSlash := in .Destination "/" }}
|
|
|
|
{{- if $isWebLink -}}
|
2021-05-12 08:41:33 +02:00
|
|
|
{{ $link := cond (and $isWebLink (and (not $hasSlash) (not $isExternalLink))) (path.Join "/" .Page.File.Dir .Destination) .Destination }}
|
2021-03-13 00:17:54 +01:00
|
|
|
<a href="{{ $link | safeURL }}"{{ with .Title}} title="{{ . }}"{{ end }}{{ if $isExternalLink }} target="_blank" rel="noopener"{{ end }}>{{ .Text | safeHTML }}</a>
|
|
|
|
{{- else -}}
|
|
|
|
{{- $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 := .Destination -}}
|
|
|
|
{{- $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>
|
|
|
|
{{- end -}}
|