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换成四个空格。

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

眼高手低啊。

2 条评论 发表在“Pygments复制粘贴问题”上

  1. amoblin说道:

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

  2. 半瓶墨水说道:

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

留下回复