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

简介:
 
  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 

 本文转自阿汐 51CTO博客,原文链接:http://blog.51cto.com/axiii/301206,如需转载请自行联系原作者


相关文章
|
SQL 前端开发 JavaScript
Python 教程之 Django(10)模板
Python 教程之 Django(10)模板
170 0
|
前端开发 JavaScript 数据库
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
|
JSON 数据处理 API
Django后端架构开发:视图与模板的正确使用
Django后端架构开发:视图与模板的正确使用
268 1
|
前端开发 Python
Django模板
【8月更文挑战第19天】
123 3
|
自然语言处理 前端开发 数据处理
Django的模板系统
【8月更文挑战第13天】
150 2
|
Java C++ Python
django 模板 过滤器
django 模板 过滤器
|
API Java 数据库连接
从平凡到卓越:Hibernate Criteria API 让你的数据库查询瞬间高大上,彻底告别复杂SQL!
【8月更文挑战第31天】构建复杂查询是数据库应用开发中的常见需求。Hibernate 的 Criteria API 以其强大和灵活的特点,允许开发者以面向对象的方式构建查询逻辑,同时具备 SQL 的表达力。本文将介绍 Criteria API 的基本用法并通过示例展示其实际应用。此 API 通过 API 构建查询条件而非直接编写查询语句,提高了代码的可读性和安全性。无论是简单的条件过滤还是复杂的分页和连接查询,Criteria API 均能胜任,有助于提升开发效率和应用的健壮性。
449 0
|
前端开发 数据处理 开发者
解锁Django模板系统终极奥义!揭秘高效前端渲染秘籍,让你的网站秒变炫酷黑科技!
【8月更文挑战第31天】Django作为Python的高级Web框架,内置的模板系统支持动态HTML渲染。本文通过在线书店案例,详细介绍Django模板系统的设置与高效渲染技巧,包括创建模板文件、编写视图函数及URL配置。通过合理使用过滤器、深度查询和模板继承等技巧,提升前端渲染效率和安全性,优化Web应用开发流程。
178 0
|
安全 JavaScript 前端开发
Django入门到放弃之模板及标签
Django入门到放弃之模板及标签
|
Python
Django 模板:构建动态网页的关键
Django 模板:构建动态网页的关键
225 9