summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Reports/reports/templatetags/syntax_coloring.py
diff options
context:
space:
mode:
authorTim Laszlo <tim.laszlo@gmail.com>2010-10-14 15:28:58 -0500
committerTim Laszlo <tim.laszlo@gmail.com>2010-10-14 15:28:58 -0500
commit7c0a9b20203e13a4da06fd79081215f712cceb38 (patch)
tree9e4372862491b36fa5ae5bf5a0f54676bfb930b4 /src/lib/Server/Reports/reports/templatetags/syntax_coloring.py
parent2b0ea7df179353442712c830fb5c3a5164632d51 (diff)
downloadbcfg2-7c0a9b20203e13a4da06fd79081215f712cceb38.tar.gz
bcfg2-7c0a9b20203e13a4da06fd79081215f712cceb38.tar.bz2
bcfg2-7c0a9b20203e13a4da06fd79081215f712cceb38.zip
web reports: new skin
Diffstat (limited to 'src/lib/Server/Reports/reports/templatetags/syntax_coloring.py')
-rw-r--r--src/lib/Server/Reports/reports/templatetags/syntax_coloring.py26
1 files changed, 21 insertions, 5 deletions
diff --git a/src/lib/Server/Reports/reports/templatetags/syntax_coloring.py b/src/lib/Server/Reports/reports/templatetags/syntax_coloring.py
index 083b83a73..43dafb262 100644
--- a/src/lib/Server/Reports/reports/templatetags/syntax_coloring.py
+++ b/src/lib/Server/Reports/reports/templatetags/syntax_coloring.py
@@ -1,4 +1,7 @@
from django import template
+from django.utils.encoding import smart_unicode, smart_str
+from django.utils.html import conditional_escape
+from django.utils.safestring import mark_safe
register = template.Library()
@@ -11,15 +14,28 @@ try:
except:
colorize = False
-def syntaxhilight(value, arg="diff"):
- '''Returns a syntax-hilighted version of Code; requires code/language arguments'''
+@register.filter
+def syntaxhilight(value, arg="diff", autoescape=None):
+ """
+ Returns a syntax-hilighted version of Code; requires code/language arguments
+ """
+
+ if autoescape:
+ value = conditional_escape(value)
+ arg = conditional_escape(arg)
+
if colorize:
try:
+ output = u'<style type="text/css">' \
+ + smart_unicode(HtmlFormatter().get_style_defs('.highlight')) \
+ + u'</style>'
+
lexer = get_lexer_by_name(arg)
- return highlight(value, lexer, HtmlFormatter())
+ output += highlight(value, lexer, HtmlFormatter())
+ return mark_safe(output)
except:
return value
else:
- return value
+ return mark_safe(u'<div class="note-box">Tip: Install pygments for highlighting</div><pre>%s</pre>' % value)
+syntaxhilight.needs_autoescape = True
-register.filter('syntaxhilight', syntaxhilight)