from django import template register = template.Library() from pygments import highlight from pygments.formatters import HtmlFormatter from pygments.lexers import get_lexer_by_name, guess_lexer @register.filter def render(content): """Render this content for display.""" formatter = HtmlFormatter(cssclass=u'source') try: # Guess a lexer by the contents of the block. lexer = guess_lexer(content) except ValueError, e: # Just make it plain text. lexer = get_lexer_by_name(u'text', stripnl=True, encoding=u'UTF-8') result = highlight(content, lexer, formatter) return unicode(result)