Pygments复制粘贴问题

作者:半瓶墨水 链接:http://www.2maomao.com/blog/pygments-copy-paste/

我正在开发的代码发芽网里面用到了Pygment进行代码加色。
需求上来看还需要动态切换加色代码以后的colorscheme,这个我已经用javascript配合css的style priority用一个现在看起来还算不错的方案搞定了。

最近发现一个问题:用Pygment加色出来的结果再复制粘贴的时候行与行之间会多出许多空行来。特别是在Gmail里面,而在Gmail中粘贴彩色代码又是我定下来的目标,今天静下来研究了几个小时,终于搞明白这是由于<pre>标签导致的问题。

到Pygments formaters目录下找到html.py,把里面加<pre>的代码注释掉,然后在escap_html的时候顺便把space全部替换成&nbsp;,搞定。

转过头发现贴前置tab的代码有问题了,解决方案是直接在调用pygments之前把tab换成四个空格。

唉,看似一个简单的网站,想起来很简单很好做,到现在业余时间搞了几个月了,终于快要有雏形了。

眼高手低啊。

  • Share/Bookmark

共 2 条评论

  • amoblin 五月 5th, 2011 5:07 下午

你好,pygments生成的代码里面带了pre标签,直接去掉的话代码就挤到了同一行,如何设置能够让pygments不使用pre标签来给代码高亮呢?

我是这样用的:
     formatter = HtmlFormatter(
               linenos=”inline”,
               encoding=’utf-8′,
               linenospecial=5,
               classprefix=’_',
               lineseparator=’<br/>’,
               cssclass=”source”)

发表评论

  • :l
  • :)
  • :q
  • :(
  • :^
  • :x
  • :v
  • :D
  • :s
  • :h
  • :e
  • :X
  • :k
  • :w
  • :d
  • :p

注意:评论中需包含至少一个中文字,否则视为无效

Additional comments powered by BackType