Integrate plausible
This commit is contained in:
parent
eb807a63a6
commit
6b586f6e07
5 changed files with 17 additions and 6 deletions
|
|
@ -7,4 +7,5 @@ backend/package-lock.json
|
||||||
|
|
||||||
# Vendored / generated assets
|
# Vendored / generated assets
|
||||||
frontend/js/jquery.min.js
|
frontend/js/jquery.min.js
|
||||||
|
frontend/js/plausible.js
|
||||||
*.min.js
|
*.min.js
|
||||||
|
|
|
||||||
7
backend/package-lock.json
generated
7
backend/package-lock.json
generated
|
|
@ -8,6 +8,7 @@
|
||||||
"name": "fizika-admin-backend",
|
"name": "fizika-admin-backend",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@plausible-analytics/tracker": "^0.4.5",
|
||||||
"cors": "^2.8.6",
|
"cors": "^2.8.6",
|
||||||
"express": "^5.2.1",
|
"express": "^5.2.1",
|
||||||
"helmet": "^8.2.0",
|
"helmet": "^8.2.0",
|
||||||
|
|
@ -20,6 +21,12 @@
|
||||||
"node": ">=18.0.0"
|
"node": ">=18.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@plausible-analytics/tracker": {
|
||||||
|
"version": "0.4.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@plausible-analytics/tracker/-/tracker-0.4.5.tgz",
|
||||||
|
"integrity": "sha512-6BfAGejXY+YA3Cw6LYT2Zpn4hTxDtPQAawFsYUsQCOg78wIS5C4deAGXTfJffa5VleMWITv5lpJ/EYuQBl1tPA==",
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/accepts": {
|
"node_modules/accepts": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz",
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@
|
||||||
"test": "node --test"
|
"test": "node --test"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@plausible-analytics/tracker": "^0.4.5",
|
||||||
"express": "^5.2.1",
|
"express": "^5.2.1",
|
||||||
"multer": "^2.1.1",
|
"multer": "^2.1.1",
|
||||||
"cors": "^2.8.6",
|
"cors": "^2.8.6",
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,5 @@
|
||||||
const API_BASE = window.location.origin;
|
const API_BASE = window.location.origin;
|
||||||
|
|
||||||
window.plausible =
|
|
||||||
window.plausible ||
|
|
||||||
function () {
|
|
||||||
(window.plausible.q = window.plausible.q || []).push(arguments);
|
|
||||||
};
|
|
||||||
|
|
||||||
// Escape user-supplied text before interpolating it into HTML, to prevent XSS.
|
// Escape user-supplied text before interpolating it into HTML, to prevent XSS.
|
||||||
function escapeHtml(value) {
|
function escapeHtml(value) {
|
||||||
return String(value).replace(
|
return String(value).replace(
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,14 @@ app.use(
|
||||||
app.use(express.json({ limit: "100mb" }));
|
app.use(express.json({ limit: "100mb" }));
|
||||||
app.use(express.static("public"));
|
app.use(express.static("public"));
|
||||||
|
|
||||||
|
// Serve the official Plausible tracker (npm: @plausible-analytics/tracker) from node_modules.
|
||||||
|
const plausibleTrackerPath =
|
||||||
|
require.resolve("@plausible-analytics/tracker/plausible.js");
|
||||||
|
|
||||||
|
app.get("/vendor/plausible.js", (req, res) => {
|
||||||
|
res.sendFile(plausibleTrackerPath);
|
||||||
|
});
|
||||||
|
|
||||||
// File paths
|
// File paths
|
||||||
const DATA_PATH =
|
const DATA_PATH =
|
||||||
process.env.DATA_PATH || path.join(__dirname, "../frontend/fizika.json");
|
process.env.DATA_PATH || path.join(__dirname, "../frontend/fizika.json");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue