1from __future__ import annotations
2
3from typing import Any
4
5from jinja2.runtime import Context
6
7from plain.templates import register_template_extension
8from plain.templates.jinja.extensions import InclusionTagExtension
9from plain.urls import reverse
10
11
12@register_template_extension
13class PageviewsJSExtension(InclusionTagExtension):
14 tags = {"pageviews_js"}
15 template_name = "pageviews/js.html"
16
17 def get_context(
18 self, context: Context, *args: Any, **kwargs: Any
19 ) -> dict[str, Any]:
20 return {
21 "pageviews_track_url": reverse("pageviews:track"),
22 "request": context.get("request"),
23 }