From 38d85320735f16686eb2430976568d8b9dbd42f9 Mon Sep 17 00:00:00 2001 From: nercone-dev Date: Wed, 15 Apr 2026 03:09:53 +0900 Subject: [PATCH] -- --- src/nercone_website/server.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/nercone_website/server.py b/src/nercone_website/server.py index edef51e..bbc5bea 100644 --- a/src/nercone_website/server.py +++ b/src/nercone_website/server.py @@ -118,7 +118,26 @@ async def default_response(request: Request, full_path: str) -> Response: accesscounter.increase() return PlainTextResponse(markdown.text_content, status_code=200) else: - response = templates.TemplateResponse(status_code=200, request=request, name=name) + lightweight_header = request.headers.get("lightweight", "").lower() + + if lightweight_header in ["1", "true", "y", "yes"]: + lightweight_mode = True + elif lightweight_header in ["0", "false", "n", "no"]: + lightweight_mode = False + else: + lightweight_mode = request.cookies.get("lightweight_mode", "") == "true" + + if lightweight_mode: + source = templates.env.loader.get_source(templates.env, name)[0] + source = source.replace('{% extends "/base.html" %}', '{% extends "/base-light.html" %}') + content = templates.env.from_string(source).render(request=request) + response = Response(content=content, status_code=200, media_type="text/html") + response.set_cookie("lightweight_mode", "true", samesite="lax") + else: + response = templates.TemplateResponse(status_code=200, request=request, name=name) + if request.cookies.get("lightweight_mode", "") == "true": + response.set_cookie("lightweight_mode", "false", samesite="lax") + accesscounter.increase() return response except TemplateNotFound: