feat: Self-hosted Plausible support (#656)
* Self-hosted Plausible support * Remove leftover import
This commit is contained in:
parent
359484c139
commit
68f53352e7
9
package-lock.json
generated
9
package-lock.json
generated
@ -32,7 +32,6 @@
|
|||||||
"mdast-util-to-hast": "^13.0.2",
|
"mdast-util-to-hast": "^13.0.2",
|
||||||
"mdast-util-to-string": "^4.0.0",
|
"mdast-util-to-string": "^4.0.0",
|
||||||
"micromorph": "^0.4.5",
|
"micromorph": "^0.4.5",
|
||||||
"plausible-tracker": "^0.3.8",
|
|
||||||
"preact": "^10.19.3",
|
"preact": "^10.19.3",
|
||||||
"preact-render-to-string": "^6.3.1",
|
"preact-render-to-string": "^6.3.1",
|
||||||
"pretty-bytes": "^6.1.1",
|
"pretty-bytes": "^6.1.1",
|
||||||
@ -4451,14 +4450,6 @@
|
|||||||
"url": "https://github.com/sponsors/jonschlinkert"
|
"url": "https://github.com/sponsors/jonschlinkert"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/plausible-tracker": {
|
|
||||||
"version": "0.3.8",
|
|
||||||
"resolved": "https://registry.npmjs.org/plausible-tracker/-/plausible-tracker-0.3.8.tgz",
|
|
||||||
"integrity": "sha512-lmOWYQ7s9KOUJ1R+YTOR3HrjdbxIS2Z4de0P/Jx2dQPteznJl2eX3tXxKClpvbfyGP59B5bbhW8ftN59HbbFSg==",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/preact": {
|
"node_modules/preact": {
|
||||||
"version": "10.19.3",
|
"version": "10.19.3",
|
||||||
"resolved": "https://registry.npmjs.org/preact/-/preact-10.19.3.tgz",
|
"resolved": "https://registry.npmjs.org/preact/-/preact-10.19.3.tgz",
|
||||||
|
@ -57,7 +57,6 @@
|
|||||||
"mdast-util-to-hast": "^13.0.2",
|
"mdast-util-to-hast": "^13.0.2",
|
||||||
"mdast-util-to-string": "^4.0.0",
|
"mdast-util-to-string": "^4.0.0",
|
||||||
"micromorph": "^0.4.5",
|
"micromorph": "^0.4.5",
|
||||||
"plausible-tracker": "^0.3.8",
|
|
||||||
"preact": "^10.19.3",
|
"preact": "^10.19.3",
|
||||||
"preact-render-to-string": "^6.3.1",
|
"preact-render-to-string": "^6.3.1",
|
||||||
"pretty-bytes": "^6.1.1",
|
"pretty-bytes": "^6.1.1",
|
||||||
|
@ -7,6 +7,7 @@ export type Analytics =
|
|||||||
| null
|
| null
|
||||||
| {
|
| {
|
||||||
provider: "plausible"
|
provider: "plausible"
|
||||||
|
host?: string
|
||||||
}
|
}
|
||||||
| {
|
| {
|
||||||
provider: "google"
|
provider: "google"
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
import Plausible from "plausible-tracker"
|
|
||||||
const { trackPageview } = Plausible()
|
|
||||||
document.addEventListener("nav", () => trackPageview())
|
|
@ -4,8 +4,6 @@ import { QuartzEmitterPlugin } from "../types"
|
|||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import spaRouterScript from "../../components/scripts/spa.inline"
|
import spaRouterScript from "../../components/scripts/spa.inline"
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import plausibleScript from "../../components/scripts/plausible.inline"
|
|
||||||
// @ts-ignore
|
|
||||||
import popoverScript from "../../components/scripts/popover.inline"
|
import popoverScript from "../../components/scripts/popover.inline"
|
||||||
import styles from "../../styles/custom.scss"
|
import styles from "../../styles/custom.scss"
|
||||||
import popoverStyle from "../../components/styles/popover.scss"
|
import popoverStyle from "../../components/styles/popover.scss"
|
||||||
@ -103,7 +101,20 @@ function addGlobalPageResources(
|
|||||||
});
|
});
|
||||||
});`)
|
});`)
|
||||||
} else if (cfg.analytics?.provider === "plausible") {
|
} else if (cfg.analytics?.provider === "plausible") {
|
||||||
componentResources.afterDOMLoaded.push(plausibleScript)
|
const plausibleHost = cfg.analytics.host ?? "https://plausible.io"
|
||||||
|
componentResources.afterDOMLoaded.push(`
|
||||||
|
const plausibleScript = document.createElement("script")
|
||||||
|
plausibleScript.src = "${plausibleHost}/js/script.manual.js"
|
||||||
|
plausibleScript.setAttribute("data-domain", location.hostname)
|
||||||
|
plausibleScript.defer = true
|
||||||
|
document.head.appendChild(plausibleScript)
|
||||||
|
|
||||||
|
window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }
|
||||||
|
|
||||||
|
document.addEventListener("nav", () => {
|
||||||
|
plausible("pageview")
|
||||||
|
})
|
||||||
|
`)
|
||||||
} else if (cfg.analytics?.provider === "umami") {
|
} else if (cfg.analytics?.provider === "umami") {
|
||||||
componentResources.afterDOMLoaded.push(`
|
componentResources.afterDOMLoaded.push(`
|
||||||
const umamiScript = document.createElement("script")
|
const umamiScript = document.createElement("script")
|
||||||
|
Loading…
Reference in New Issue
Block a user