fix: fix duplicate link click tracking

This commit is contained in:
Jacky Zhao 2023-02-05 12:01:49 -08:00
parent cf4b9f3f39
commit bb709cca71
2 changed files with 24 additions and 23 deletions

View File

@ -160,6 +160,29 @@
) )
} }
{{end}} {{end}}
// analytics
function clickHandler(evt) {
const target = evt.target
const classNames = target.className.split(" ")
const broken = classNames.includes("broken")
const internal = classNames.includes("internal-link")
plausible("Link Click", {
props: {
href: target.href,
broken,
internal,
graph: false,
}
})
}
const links = document.querySelectorAll("a")
for (link of links) {
if (link.className.includes("root-title")) {
link.addEventListener('click', clickHandler, {once: true})
}
}
} }
const init = (doc = document) => { const init = (doc = document) => {
@ -183,28 +206,6 @@
throwOnError : false throwOnError : false
}); });
{{end}} {{end}}
// analytics
function clickHandler(evt) {
const target = evt.target
const classNames = target.className.split(" ")
const broken = classNames.includes("broken")
const internal = classNames.includes("internal-link")
plausible("Link Click", {
props: {
href: target.href,
broken,
internal,
graph: false,
}
})
}
const links = document.querySelectorAll("a")
for (link of links) {
link.addEventListener('click', clickHandler)
link.addEventListener('auxclick', clickHandler)
}
}; };
</script> </script>
{{if $data.enableSPA | default $.Site.Data.config.enableSPA}} {{if $data.enableSPA | default $.Site.Data.config.enableSPA}}

View File

@ -1,6 +1,6 @@
<header> <header>
{{ $config := cond (eq $.Site.Language.Lang "en") "config" (printf "config.%s" $.Site.Language.Lang) }} {{ $config := cond (eq $.Site.Language.Lang "en") "config" (printf "config.%s" $.Site.Language.Lang) }}
<h1 id="page-title"><a href="{{ "" | absLangURL }}">{{ ( index $.Site.Data $config ).page_title | default $.Site.Data.config.page_title }}</a></h1> <h1 id="page-title"><a class="root-title" href="{{ "" | absLangURL }}">{{ ( index $.Site.Data $config ).page_title | default $.Site.Data.config.page_title }}</a></h1>
<div class="spacer"></div> <div class="spacer"></div>
<div id="search-icon"> <div id="search-icon">
<p>{{ i18n "search" }}</p> <p>{{ i18n "search" }}</p>