Skip to content

Commit e96e53f

Browse files
Merge pull request django-commons#2043 from thesayfulla/whitespace-rendering
Fix whitespace view in code
2 parents c24afa7 + 5b0e50c commit e96e53f

File tree

2 files changed

+89
-57
lines changed

2 files changed

+89
-57
lines changed

debug_toolbar/panels/templates/views.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def template_source(request):
5656
except ModuleNotFoundError:
5757
source = format_html("<code>{}</code>", source)
5858
else:
59-
source = highlight(source, HtmlDjangoLexer(), HtmlFormatter())
59+
source = highlight(source, HtmlDjangoLexer(), HtmlFormatter(wrapcode=True))
6060
source = mark_safe(source)
6161

6262
content = render_to_string(

debug_toolbar/static/debug_toolbar/css/toolbar.css

+88-56
Original file line numberDiff line numberDiff line change
@@ -556,62 +556,94 @@
556556
#djDebug .highlight .err {
557557
color: var(--djdt-font-color);
558558
} /* Error */
559-
#djDebug .highlight .g {
560-
color: var(--djdt-font-color);
561-
} /* Generic */
562-
#djDebug .highlight .k {
563-
color: var(--djdt-font-color);
564-
font-weight: bold;
565-
} /* Keyword */
566-
#djDebug .highlight .o {
567-
color: var(--djdt-font-color);
568-
} /* Operator */
569-
#djDebug .highlight .n {
570-
color: var(--djdt-font-color);
571-
} /* Name */
572-
#djDebug .highlight .mi {
573-
color: var(--djdt-font-color);
574-
font-weight: bold;
575-
} /* Literal.Number.Integer */
576-
#djDebug .highlight .l {
577-
color: var(--djdt-font-color);
578-
} /* Literal */
579-
#djDebug .highlight .x {
580-
color: var(--djdt-font-color);
581-
} /* Other */
582-
#djDebug .highlight .p {
583-
color: var(--djdt-font-color);
584-
} /* Punctuation */
585-
#djDebug .highlight .m {
586-
color: var(--djdt-font-color);
587-
font-weight: bold;
588-
} /* Literal.Number */
589-
#djDebug .highlight .s {
590-
color: var(--djdt-template-highlight-color);
591-
} /* Literal.String */
592-
#djDebug .highlight .w {
593-
color: #888888;
594-
} /* Text.Whitespace */
595-
#djDebug .highlight .il {
596-
color: var(--djdt-font-color);
597-
font-weight: bold;
598-
} /* Literal.Number.Integer.Long */
599-
#djDebug .highlight .na {
600-
color: var(--djdt-template-highlight-color);
601-
} /* Name.Attribute */
602-
#djDebug .highlight .nt {
603-
color: var(--djdt-font-color);
604-
font-weight: bold;
605-
} /* Name.Tag */
606-
#djDebug .highlight .nv {
607-
color: var(--djdt-template-highlight-color);
608-
} /* Name.Variable */
609-
#djDebug .highlight .s2 {
610-
color: var(--djdt-template-highlight-color);
611-
} /* Literal.String.Double */
612-
#djDebug .highlight .cp {
613-
color: var(--djdt-template-highlight-color);
614-
} /* Comment.Preproc */
559+
560+
/*
561+
Styles for pygments HTMLFormatter
562+
563+
- This should match debug_toolbar/panels/templates/views.py::template_source
564+
- Each line needs to be prefixed with #djDebug .highlight as well.
565+
- The .w definition needs to include:
566+
white-space: pre-wrap
567+
568+
To regenerate:
569+
570+
from pygments.formatters import HtmlFormatter
571+
print(HtmlFormatter(wrapcode=True).get_style_defs())
572+
*/
573+
#djDebug .highlight pre { line-height: 125%; }
574+
#djDebug .highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
575+
#djDebug .highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
576+
#djDebug .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
577+
#djDebug .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
578+
#djDebug .highlight .hll { background-color: #ffffcc }
579+
#djDebug .highlight .c { color: #3D7B7B; font-style: italic } /* Comment */
580+
#djDebug .highlight .err { border: 1px solid #FF0000 } /* Error */
581+
#djDebug .highlight .k { color: #008000; font-weight: bold } /* Keyword */
582+
#djDebug .highlight .o { color: #666666 } /* Operator */
583+
#djDebug .highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */
584+
#djDebug .highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */
585+
#djDebug .highlight .cp { color: #9C6500 } /* Comment.Preproc */
586+
#djDebug .highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */
587+
#djDebug .highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */
588+
#djDebug .highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */
589+
#djDebug .highlight .gd { color: #A00000 } /* Generic.Deleted */
590+
#djDebug .highlight .ge { font-style: italic } /* Generic.Emph */
591+
#djDebug .highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
592+
#djDebug .highlight .gr { color: #E40000 } /* Generic.Error */
593+
#djDebug .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
594+
#djDebug .highlight .gi { color: #008400 } /* Generic.Inserted */
595+
#djDebug .highlight .go { color: #717171 } /* Generic.Output */
596+
#djDebug .highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
597+
#djDebug .highlight .gs { font-weight: bold } /* Generic.Strong */
598+
#djDebug .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
599+
#djDebug .highlight .gt { color: #0044DD } /* Generic.Traceback */
600+
#djDebug .highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
601+
#djDebug .highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
602+
#djDebug .highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
603+
#djDebug .highlight .kp { color: #008000 } /* Keyword.Pseudo */
604+
#djDebug .highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
605+
#djDebug .highlight .kt { color: #B00040 } /* Keyword.Type */
606+
#djDebug .highlight .m { color: #666666 } /* Literal.Number */
607+
#djDebug .highlight .s { color: #BA2121 } /* Literal.String */
608+
#djDebug .highlight .na { color: #687822 } /* Name.Attribute */
609+
#djDebug .highlight .nb { color: #008000 } /* Name.Builtin */
610+
#djDebug .highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
611+
#djDebug .highlight .no { color: #880000 } /* Name.Constant */
612+
#djDebug .highlight .nd { color: #AA22FF } /* Name.Decorator */
613+
#djDebug .highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */
614+
#djDebug .highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */
615+
#djDebug .highlight .nf { color: #0000FF } /* Name.Function */
616+
#djDebug .highlight .nl { color: #767600 } /* Name.Label */
617+
#djDebug .highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
618+
#djDebug .highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
619+
#djDebug .highlight .nv { color: #19177C } /* Name.Variable */
620+
#djDebug .highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
621+
#djDebug .highlight .w { color: #bbbbbb; white-space: pre-wrap } /* Text.Whitespace */
622+
#djDebug .highlight .mb { color: #666666 } /* Literal.Number.Bin */
623+
#djDebug .highlight .mf { color: #666666 } /* Literal.Number.Float */
624+
#djDebug .highlight .mh { color: #666666 } /* Literal.Number.Hex */
625+
#djDebug .highlight .mi { color: #666666 } /* Literal.Number.Integer */
626+
#djDebug .highlight .mo { color: #666666 } /* Literal.Number.Oct */
627+
#djDebug .highlight .sa { color: #BA2121 } /* Literal.String.Affix */
628+
#djDebug .highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
629+
#djDebug .highlight .sc { color: #BA2121 } /* Literal.String.Char */
630+
#djDebug .highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
631+
#djDebug .highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
632+
#djDebug .highlight .s2 { color: #BA2121 } /* Literal.String.Double */
633+
#djDebug .highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */
634+
#djDebug .highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
635+
#djDebug .highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */
636+
#djDebug .highlight .sx { color: #008000 } /* Literal.String.Other */
637+
#djDebug .highlight .sr { color: #A45A77 } /* Literal.String.Regex */
638+
#djDebug .highlight .s1 { color: #BA2121 } /* Literal.String.Single */
639+
#djDebug .highlight .ss { color: #19177C } /* Literal.String.Symbol */
640+
#djDebug .highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
641+
#djDebug .highlight .fm { color: #0000FF } /* Name.Function.Magic */
642+
#djDebug .highlight .vc { color: #19177C } /* Name.Variable.Class */
643+
#djDebug .highlight .vg { color: #19177C } /* Name.Variable.Global */
644+
#djDebug .highlight .vi { color: #19177C } /* Name.Variable.Instance */
645+
#djDebug .highlight .vm { color: #19177C } /* Name.Variable.Magic */
646+
#djDebug .highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
615647

616648
#djDebug svg.djDebugLineChart {
617649
width: 100%;

0 commit comments

Comments
 (0)