编写Python脚本使得web页面上的代码高亮显示


Posted in Python onApril 24, 2015

做了一个在线代码高亮的项目,强大的Python一如既往没让我失望,一个强大的Pygments模块可以对多种(很多)语言进行代码高亮

下面来介绍一下它:

首先安装很简单,使用easy_install来进行安装:

easy_install pygments

安装完后我们来使用,Python的简单不会让大家失望:

from pygments.lexers import PythonLexver
from pygments.formatters import HtmlFormatter
from pygments import highlight

formatter = HtmlFormatter(encoding='utf-8', style = 'emacs', linenos = True)
code = highlight('print "hello, world"', PythonLexer(), formatter)

print code

结果

'<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span class="k">print</span> <span class="s">"hello, world"</span>\n</pre></div>\n</td></tr></table>'

这样就简单的对代码进行了高亮,当然如果你做了上面操作,然后把内容输入到一个文件里查看,肯定大呼坑爹,因为根本没高亮,因为默认是不会输出css的 我们还要获取css加入到html中去:

css = formatter.get_style_defs()

然后把css内容和上面的html一起写入到html文件就可以看到高亮的代码了(千万不要告诉我你不知道css应该放在什么位置)

Python 相关文章推荐
深入分析在Python模块顶层运行的代码引起的一个Bug
Jul 04 Python
python中实现php的var_dump函数功能
Jan 21 Python
编写Python的web框架中的Model的教程
Apr 29 Python
python rsa 加密解密
Mar 20 Python
Python subprocess模块详细解读
Jan 29 Python
关于python2 csv写入空白行的问题
Jun 22 Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
Sep 07 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
Oct 17 Python
Pandas-Cookbook 时间戳处理方式
Dec 07 Python
python爬虫分布式获取数据的实例方法
Nov 26 Python
python 进制转换 int、bin、oct、hex的原理
Jan 13 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
Feb 20 Python
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
Apr 24 #Python
Python3.x中自定义比较函数
Apr 24 #Python
使用Python脚本将绝对url替换为相对url的教程
Apr 24 #Python
Python3.x版本中新的字符串格式化方法
Apr 24 #Python
用Python的Tornado框架结合memcached页面改善博客性能
Apr 24 #Python
使用Python编写一个在Linux下实现截图分享的脚本的教程
Apr 24 #Python
修改Python的pyxmpp2中的主循环使其提高性能
Apr 24 #Python
You might like
Windows下安装Memcached的步骤说明
2010/04/25 PHP
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
php快速排序原理与实现方法分析
2016/05/26 PHP
Mac下php 5升级到php 7的步骤详解
2017/04/26 PHP
JavaScript DOM学习第一章 W3C DOM简介
2010/02/19 Javascript
jcarousellite.js 基于Jquery的图片无缝滚动插件
2010/12/30 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
JavaScript高级程序设计(第3版)学习笔记4 js运算符和操作符
2012/10/11 Javascript
js iframe跨域访问(同主域/非同主域)分别深入介绍
2013/01/24 Javascript
js鼠标及对象坐标控制属性详细解析
2013/12/14 Javascript
Javascript中浮点数相乘的一个解决方法
2014/06/03 Javascript
js实现window.open不被拦截的解决方法汇总
2014/10/30 Javascript
浅谈JavaScript Date日期和时间对象
2014/12/29 Javascript
jQuery mobile 移动web(4)
2015/12/20 Javascript
AngularJS实现分页显示数据库信息
2016/07/01 Javascript
JS简单实现浮动窗口效果示例
2016/09/07 Javascript
JS常用正则表达式总结【经典】
2017/05/12 Javascript
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
前端面试知识点目录一览
2019/04/15 Javascript
前端Electron新手入门教程详解
2019/06/21 Javascript
layui 对弹窗 form表单赋值的实现方法
2019/09/04 Javascript
JavaScript实现网页下拉菜单效果
2020/11/20 Javascript
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
Django模板变量如何传递给外部js调用的方法小结
2017/07/24 Python
对python Tkinter Text的用法详解
2018/10/11 Python
解决python 读取 log日志的编码问题
2019/12/24 Python
基于Python获取照片的GPS位置信息
2020/01/20 Python
python画图常规设置方式
2020/03/05 Python
Django 允许局域网中的机器访问你的主机操作
2020/05/13 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
Python利用imshow制作自定义渐变填充柱状图(colorbar)
2020/12/10 Python
《天游峰的扫路人》教学反思
2014/04/25 职场文书
护士工作心得体会
2016/01/25 职场文书
人为什么会“幸灾乐祸”?
2019/08/06 职场文书
MySQL的索引你了解吗
2022/03/13 MySQL
java高级用法JNA强大的Memory和Pointer
2022/04/19 Java/Android