From 7253557d2c5e3ee6ff2f093068cd6beac6defe6d Mon Sep 17 00:00:00 2001
From: Wen Taichi <daleth90@gmail.com>
Date: Tue, 08 Jul 2025 02:52:49 +0000
Subject: [PATCH] fix(goatcounter): properly count SPA page hits (#2035)
---
quartz/plugins/emitters/componentResources.ts | 14 +++++++++-----
1 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/quartz/plugins/emitters/componentResources.ts b/quartz/plugins/emitters/componentResources.ts
index 5fdc5c2..61e2ba8 100644
--- a/quartz/plugins/emitters/componentResources.ts
+++ b/quartz/plugins/emitters/componentResources.ts
@@ -135,15 +135,19 @@
`)
} else if (cfg.analytics?.provider === "goatcounter") {
componentResources.afterDOMLoaded.push(`
+ const goatcounterScriptPre = document.createElement('script');
+ goatcounterScriptPre.textContent = \`
+ window.goatcounter = { no_onload: true };
+ \`;
+ document.head.appendChild(goatcounterScriptPre);
+
+ const endpoint = "https://${cfg.analytics.websiteId}.${cfg.analytics.host ?? "goatcounter.com"}/count";
const goatcounterScript = document.createElement('script');
goatcounterScript.src = "${cfg.analytics.scriptSrc ?? "https://gc.zgo.at/count.js"}";
goatcounterScript.defer = true;
- goatcounterScript.setAttribute(
- 'data-goatcounter',
- "https://${cfg.analytics.websiteId}.${cfg.analytics.host ?? "goatcounter.com"}/count"
- );
+ goatcounterScript.setAttribute('data-goatcounter', endpoint);
goatcounterScript.onload = () => {
- window.goatcounter = { no_onload: true };
+ window.goatcounter.endpoint = endpoint;
goatcounter.count({ path: location.pathname });
document.addEventListener('nav', () => {
goatcounter.count({ path: location.pathname });
--
Gitblit v1.10.0