diff options
author | Tim Laszlo <tim.laszlo@gmail.com> | 2010-10-14 15:28:58 -0500 |
---|---|---|
committer | Sol Jerome <sol.jerome@gmail.com> | 2010-11-02 20:35:17 -0500 |
commit | 2435042c73537a368cda92a4a01c9009d3aaffbe (patch) | |
tree | 4cf551ce778394d93b54bc02c8c5502b1ad7e433 /src/lib/Server/Reports/reports/templatetags/syntax_coloring.py | |
parent | feed7f02aeda0b8abe4a3a521e6ab13081c84232 (diff) | |
download | bcfg2-2435042c73537a368cda92a4a01c9009d3aaffbe.tar.gz bcfg2-2435042c73537a368cda92a4a01c9009d3aaffbe.tar.bz2 bcfg2-2435042c73537a368cda92a4a01c9009d3aaffbe.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.py | 26 |
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) |