利用pygments实现django模板内的语法高亮

Django code highlight template filter

来源地址:http://snipperize.todayclose.com/snippet/py/Django-code-highlight-template-filter--24910/

  
  
  
  
  1. from pygments import highlight 
  2. from pygments.lexers import get_lexer_by_name, PhpLexer 
  3. from pygments.formatters import HtmlFormatter 
  4. from pygments.util import ClassNotFound 
  5.  
  6.  
  7. @register.filter 
  8. def highlight_code(code, lang): 
  9.   if code is not None
  10.     try
  11.       # startinline is for PhpLexer so that it doesn't 
  12.       # require a <?php 
  13.       lexer = get_lexer_by_name(lang, encoding='utf-8', stripall=True, startinline=True
  14.     except ClassNotFound: 
  15.       lexer = get_lexer_by_name('text'
  16.     formatter = HtmlFormatter(encoding='utf-8', style='colorful', linenos='table', cssclass='highlight', lineanchors="line"
  17.     return highlight(code, lexer, formatter)   
  18.   else
  19.     return code 

 

你可能感兴趣的:(django,模板,语法,高亮,pygments)