From 890d8b7e23f0b0c9a1946f2fefc6493ea4cbdff9 Mon Sep 17 00:00:00 2001 From: Septs Date: Sat, 25 Dec 2021 06:56:39 +0800 Subject: [PATCH] chore: improve render-link --- assets/customize.js | 14 ++++++++++++-- layouts/_default/_markup/render-link.html | 4 ++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/assets/customize.js b/assets/customize.js index f741fcb2..79bcc1bf 100644 --- a/assets/customize.js +++ b/assets/customize.js @@ -1,3 +1,13 @@ -document.querySelectorAll('a[href^="mailto:"]').forEach((element) => { - element.href = atob(element.href.replace(/^mailto:/, '')); +document.addEventListener('click', (event) => { + const link = event.target.closest('a'); + if (link === null || link.tagName !== 'A') return; + if (link.hostname === location.hostname) return; + event.preventDefault(); + event.stopPropagation(); + open(link.href); +}); + +document.querySelectorAll('a[data-email]').forEach((element) => { + element.href = atob(element.dataset.email); + delete element.dataset.email; }); diff --git a/layouts/_default/_markup/render-link.html b/layouts/_default/_markup/render-link.html index 6da14f33..3c4ec5c1 100644 --- a/layouts/_default/_markup/render-link.html +++ b/layouts/_default/_markup/render-link.html @@ -1,9 +1,9 @@ {{- if hasPrefix .Destination "mailto:" -}} {{- $text := replace (replace .Text "-" "--") "_" "__" -}} {{- $icon := resources.GetRemote (printf "https://img.shields.io/badge/email-%s-blue.svg?style=flat-square" $text) -}} - + {{- else -}} - + {{- .Text | safeHTML -}} {{- end -}} \ No newline at end of file