From b539415e70f1fc3d1e1100f7fe5b80a3e2d19f93 Mon Sep 17 00:00:00 2001 From: Matthias Kestenholz Date: Wed, 17 Aug 2022 10:52:04 +0200 Subject: [PATCH 1/3] Add pygments to the dependencies; the template_source view uses it Refs #1662. --- tox.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/tox.ini b/tox.ini index ae3936228..ad2e6c090 100644 --- a/tox.ini +++ b/tox.ini @@ -17,6 +17,7 @@ deps = coverage Jinja2 html5lib + pygments selenium sqlparse passenv= From ad55996ad0380caeb2619fdde58dbd987d22dd82 Mon Sep 17 00:00:00 2001 From: Matthias Kestenholz Date: Wed, 17 Aug 2022 19:25:57 +0200 Subject: [PATCH 2/3] Fix #1662: Avoid assigning arbitrary attributes to SafeString instances --- debug_toolbar/panels/templates/views.py | 10 +++++----- .../debug_toolbar/panels/template_source.html | 6 +----- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/debug_toolbar/panels/templates/views.py b/debug_toolbar/panels/templates/views.py index 8d6d634d3..fae5d9ed0 100644 --- a/debug_toolbar/panels/templates/views.py +++ b/debug_toolbar/panels/templates/views.py @@ -3,7 +3,7 @@ from django.template import Origin, TemplateDoesNotExist from django.template.engine import Engine from django.template.loader import render_to_string -from django.utils.safestring import mark_safe +from django.utils.html import format_html, mark_safe from debug_toolbar.decorators import require_show_toolbar @@ -50,12 +50,12 @@ def template_source(request): from pygments import highlight from pygments.formatters import HtmlFormatter from pygments.lexers import HtmlDjangoLexer - + except ModuleNotFoundError: + source = format_html("{}", source) + pass + else: source = highlight(source, HtmlDjangoLexer(), HtmlFormatter()) source = mark_safe(source) - source.pygmentized = True - except ImportError: - pass content = render_to_string( "debug_toolbar/panels/template_source.html", diff --git a/debug_toolbar/templates/debug_toolbar/panels/template_source.html b/debug_toolbar/templates/debug_toolbar/panels/template_source.html index 229ea83e4..397c44b24 100644 --- a/debug_toolbar/templates/debug_toolbar/panels/template_source.html +++ b/debug_toolbar/templates/debug_toolbar/panels/template_source.html @@ -5,10 +5,6 @@

{% trans "Template source:" %} {{ template_name }}

- {% if not source.pygmentized %} - {{ source }} - {% else %} - {{ source }} - {% endif %} + {{ source }}
From 8b3480a22e88c9ecbd7792278758d48517497d6b Mon Sep 17 00:00:00 2001 From: Matthias Kestenholz Date: Wed, 17 Aug 2022 19:35:33 +0200 Subject: [PATCH 3/3] Remove a left-over pass statement --- debug_toolbar/panels/templates/views.py | 1 - 1 file changed, 1 deletion(-) diff --git a/debug_toolbar/panels/templates/views.py b/debug_toolbar/panels/templates/views.py index fae5d9ed0..134b3d476 100644 --- a/debug_toolbar/panels/templates/views.py +++ b/debug_toolbar/panels/templates/views.py @@ -52,7 +52,6 @@ def template_source(request): from pygments.lexers import HtmlDjangoLexer except ModuleNotFoundError: source = format_html("{}", source) - pass else: source = highlight(source, HtmlDjangoLexer(), HtmlFormatter()) source = mark_safe(source)