Plain is headed towards 1.0! Subscribe for development updates →

 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        }