1from __future__ import annotations
2
3from typing import Any
4
5from jinja2.runtime import Context
6
7from plain.assets.finders import APP_ASSETS_DIR
8from plain.internal import internalcode
9from plain.runtime import settings
10from plain.templates import register_template_extension
11from plain.templates.jinja.extensions import InclusionTagExtension
12
13
14@internalcode
15@register_template_extension
16class TailwindCSSExtension(InclusionTagExtension):
17 tags = {"tailwind_css"}
18 template_name = "tailwind/css.html"
19
20 def get_context(
21 self, context: Context, *args: Any, **kwargs: Any
22 ) -> dict[str, str]:
23 tailwind_css_path = str(settings.TAILWIND_DIST_PATH.relative_to(APP_ASSETS_DIR))
24 return {"tailwind_css_path": tailwind_css_path}