- Author:
- badrunner
- Posted:
- September 15, 2007
- Language:
- Python
- Version:
- .96
- Score:
- 6 (after 6 ratings)
Replaces <code> blocks with syntax highlighted code. Use CSS to actually get the colours you want, look at pygments documentation for extracting css for various styles.
This snippet has the advantage of falling back on <pre> if anything goes wrong, and attempting to guess the syntax of code, falling back on python.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | from django import template
from pygments import highlight
from pygments.lexers import guess_lexer, PythonLexer
from pygments.formatters import HtmlFormatter
from BeautifulSoup import BeautifulSoup
register = template.Library()
@register.filter
def pygmentize(value):
try:
soup = BeautifulSoup(value)
code_blocks = soup.findAll('code')
for code in code_blocks:
try:
lexer = guess_lexer(code.string)
except ValueError:
lexer = PythonLexer()
code.replaceWith(highlight(code.string, lexer, HtmlFormatter()))
return str(soup)
except:
return value.replace('<code>', '<div class="highlight"><pre>').replace('</code>', '</pre></div>')
|
More like this
- csrf test by zukosdead 2 months ago
- find even number by Rajeev529 10 months, 2 weeks ago
- Form field with fixed value by roam 11 months ago
- New Snippet! by Antoliny0919 11 months, 1 week ago
- Add Toggle Switch Widget to Django Forms by OgliariNatan 1 year, 2 months ago
Comments
Please login first before commenting.