diff --git a/inventory/config.py b/inventory/config.py index 0372d87..f0f7608 100644 --- a/inventory/config.py +++ b/inventory/config.py @@ -9,7 +9,7 @@ def quote(value: str) -> str: class Config: SQLALCHEMY_TRACK_MODIFICATIONS = False - DEBUG = False + DEBUG = True TESTING = False DB_BACKEND = os.getenv('DB_BACKEND', 'sqlite').lower() diff --git a/inventory/routes/hooks.py b/inventory/routes/hooks.py index 7186220..298a709 100644 --- a/inventory/routes/hooks.py +++ b/inventory/routes/hooks.py @@ -1,18 +1,30 @@ from bs4 import BeautifulSoup from flask import current_app as app +import re from . import main @main.after_request -def prettify_html_response(response): - if app.debug and response.content_type.startswith("text/html"): +def prettify_or_minify_html_response(response): + print(app.debug, response.content_type) + if response.content_type.startswith("text/html"): try: - soup = BeautifulSoup(response.get_data(as_text=True), 'html5lib') - pretty_html = soup.prettify() + html = response.get_data(as_text=True) + soup = BeautifulSoup(html, 'html5lib') + + if app.debug: + pretty_html = soup.prettify() + response.set_data(pretty_html.encode("utf-8")) # type: ignore + else: + # Minify by stripping extra whitespace between tags and inside text + minified_html = re.sub(r">\s+<", "><", str(soup)) # collapse whitespace between tags + minified_html = re.sub(r"\s{2,}", " ", minified_html) # collapse multi-spaces to one + minified_html = re.sub(r"\n+", "", minified_html) # remove newlines + + response.set_data(minified_html.encode("utf-8")) # type: ignore - response.set_data(pretty_html.encode("utf-8")) # type: ignore response.headers['Content-Type'] = 'text/html; charset=utf-8' - except Exception as e: - print(f"⚠️ Prettifying failed: {e}") + print(f"⚠️ Prettifying/Minifying failed: {e}") + return response diff --git a/inventory/templates/inventory.html b/inventory/templates/inventory.html index 2011f8d..8126665 100644 --- a/inventory/templates/inventory.html +++ b/inventory/templates/inventory.html @@ -263,37 +263,35 @@ ) }} {% if worklog %} -