From bb37eeba3ba44893a7745caa1cea656b82995a85 Mon Sep 17 00:00:00 2001 From: Simon C Date: Thu, 26 Nov 2020 15:09:55 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20Eviter=20les=20spams=20sur=20mail=20et?= =?UTF-8?q?=20t=C3=A9l=C3=A9phone?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fixes: #1 --- assets/js/main.js | 19 ++++++++++++++ assets/styles/main.sass | 9 ++++++- layouts/_default/_markup/render-link.html | 30 +++++++++++++++++++++-- layouts/partials/footer.html | 4 +-- 4 files changed, 57 insertions(+), 5 deletions(-) create mode 100644 assets/js/main.js diff --git a/assets/js/main.js b/assets/js/main.js new file mode 100644 index 0000000..8564daf --- /dev/null +++ b/assets/js/main.js @@ -0,0 +1,19 @@ +const obfuscates = document.getElementsByClassName("obfuscate") +for (const element of obfuscates) { + const link = document.createElement("a") + const separators = element.dataset.separators + const protocol = element.dataset.param1.split("").reverse().join("") + let url = protocol + for (let i = 0; i < separators.length; i++) { + url += separators[i] + element.dataset["param" + (i+2)].split("").reverse().join("") + } + let text = element.dataset.param2.split("").reverse().join("") + for (let i = 1; i < separators.length; i++) { + text += separators[i] + element.dataset["param" + (i+2)].split("").reverse().join("") + } + link.innerText = url.replace(new RegExp(element.dataset.regex, 'i'), element.dataset.replace) + link.href = url + link.rel = "nofollow" + element.parentElement.insertBefore(link, element); +} +while (obfuscates.length > 0) obfuscates[0].remove() diff --git a/assets/styles/main.sass b/assets/styles/main.sass index 47237af..f96e814 100644 --- a/assets/styles/main.sass +++ b/assets/styles/main.sass @@ -221,8 +221,15 @@ hr .card-body font-size: .9rem - .md max-width: 645px margin-left: auto margin-right: auto + +.obfuscate:before + content: attr(data-param2) + unicode-bidi: bidi-override + direction: rtl + + &.at + content: attr(data-param4) "\002E" attr(data-param3) "\0040" attr(data-param2) diff --git a/layouts/_default/_markup/render-link.html b/layouts/_default/_markup/render-link.html index bb743f1..df7cfd2 100644 --- a/layouts/_default/_markup/render-link.html +++ b/layouts/_default/_markup/render-link.html @@ -2,8 +2,34 @@ 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 "/" }} -{{ $path := cond (or (or $isTelLink $isMailtoLink) $hasSlash) .Destination (path.Join "/" .Page.Dir .Destination) }} -{{ .Text | safeHTML }} +{{ $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) -}} + + +{{ else }} + {{ .Text | safeHTML }} +{{ end }} diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html index d7486e4..2c53705 100644 --- a/layouts/partials/footer.html +++ b/layouts/partials/footer.html @@ -5,8 +5,8 @@

Mairie de Crémeaux

Place de Pierre-Bénite

42260 Crémeaux

-

04 77 62 50 67

-

mairie@cremeaux.fr

+

{{ .RenderString "[](tel:0477625067)" }}

+

{{ .RenderString "[](mailto:mairie@cremeaux.fr)" }}

Flux RSS de l'actualité à Crémeaux Facebook : Vivre à Crémeaux