Implement analytics feature

Add server-side visit analytics collection, a public-page ping endpoint,
and a full-screen AnalyticsView for admins.

Backend:
- Add pagerite/analytics.py: Analytics/Visit model, Store, and persistence
- Wire /_a ping endpoint and GET /_api/analytics into pagerite/app.py

Frontend:
- Add full-screen AnalyticsView with visitor charts and transition map
- Add VisitorCharts and TransitionGraph subcomponents
- Add analytics JS helpers in frontend/src/analytics/
- Send navigation pings from frontend/src/pagerite.js
- Mount AnalyticsView from frontend/src/main.js
- Document the feature in docs/analytics.md and update AGENTS.md
This commit is contained in:
2026-08-20 18:43:57 +00:00
parent 11f8de2df5
commit b4e8fad090
16 changed files with 1932 additions and 17 deletions
+1 -7
View File
@@ -596,7 +596,7 @@ blockquote p {
background: color-mix(in srgb, var(--admonition-color, var(--accent)) 7%, transparent);
}
.admonition > :last-child {
.admonition> :last-child {
margin-bottom: 0;
}
@@ -698,12 +698,6 @@ td {
transparent 75%);
}
tbody tr:nth-child(even) td {
background: linear-gradient(160deg,
color-mix(in srgb, var(--table-tint, var(--accent)) 9%, transparent),
color-mix(in srgb, var(--table-tint, var(--accent)) 3%, transparent) 75%);
}
tbody tr+tr td {
border-top: 1px solid color-mix(in srgb, var(--table-tint, var(--accent)) 12%, transparent);
}