## page was renamed from MicroProj/2008-01-25 ##language:zh #pragma section-numbers on ::-- ZoomQuiet [<>] <> ## 默许导航,请保留 <> = 拿Pygments做了个在线代码着色工具 = {{{ realfun reply-to python-chinese@lists.python.cn, to python-chinese@lists.python.cn, date Jan 25, 2008 9:23 AM subject [python-chinese] 拿Pygments做了个在线代码着色工具 }}} * '''http://www.peerat.com/code/''' {{{#!python #!/usr/bin/env python #encoding:utf-8 import sys sys.path.insert(0, '/home/twomaom1/lib/python2.3/') sys.path.insert(0, '/home/twomaom1/lib/python2.3/site-packages/') from pygments import highlight from pygments.lexers import get_lexer_by_name from pygments.formatters import HtmlFormatter import cgi import cgitb cgitb.enable() print "Content-type:text/html\n" def code2html(code, lang): if lang.lower() == "auto": #@notworking... lexer = guess_lexer(code, encoding='utf-8', stripall=True) else: lexer = get_lexer_by_name(lang, encoding='utf-8', stripall=True) formatter = HtmlFormatter(linenos=False, encoding='utf-8', cssclass="source") result = highlight(code, lexer, formatter) return result def output_head(): print """ O_O """ def output_end(): print "" print "" def main(): form = cgi.FieldStorage() code = 'print "Hello World!"' lang = "AUTO" name = "浮名乃身外物" user = "无名氏" output_head() if (form.has_key("code") and len(form["code"].value) > 0)\ or (form.has_key("file") and form["file"].file): if form.has_key("code") and len(form["code"].value) > 0: code = form["code"].value else: fileitem = form["file"].file data = fileitem.read(0x10000) if len(data): code = data if form.has_key("lang"): lang = form["lang"].value if form.has_key("name"): name = form["name"].value if form.has_key("user"): user = form["name"].value result = code2html(code, lang) print result else: print "选择文件,或者粘贴代码,否则啥也没有。:)\n" print '点击此处返回 \n' output_end() main() }}} == 反馈 ==