Python追踪信息无语法高亮 - pygments
我在一个博客上使用的是 pygments 1.6 版本,主要用来做语法高亮(通过 CodeHilite 插件来处理 markdown)。
对于 Python 代码的高亮效果非常不错。不过,如果我尝试用 pytb
这个工具来高亮 Python 的错误追踪信息,效果就让人失望了。
我可以确认这个工具是可用的:
for lexer in pygments.lexers.get_all_lexers():
print lexer
........
('Python Traceback', ('pytb',), ('*.pytb',), ('text/x-python-traceback',))
.......
但是它的效果和演示的完全不一样:http://pygments.org/demo/61075/?style=native
相反,它的高亮效果只是简单的白色字体。
编辑
我的代码:
<div class="codehilite">
<pre>
<span class="go">TypeError: Error when calling the metaclass bases</span>
<span class="go"> class _AsyncDeviceInquiry does not correctly implement protocol IOBluetoothDeviceInquiryDelegate: the signature for method deviceInquiryComplete:error:aborted: is v@:@iB instead of v@:@iZ</span>
</pre>
</div>
演示中的代码
<div class="syntax">
<pre>
:
<span class="nc">ImportError</span>
:
<span class="n-Identifier">('No module named TMPD54~1.049d4d1330606d5fa968586a2810c4fc', '[DimShuffle{x}(TensorConstant{2.0})]')</span>
</pre>
</div>
1 个回答
-1
我猜Pygments工作得很好。建议你查看一下你生成的markdown输出的源代码,以及你提到的那个示例的源代码。我怀疑这两者中都会有很多标签,用来标记不同的部分。
当然,如果你不提供你实际得到的输出,我只能猜测。但如果我没猜错的话,你需要提供CSS来给这些标记添加样式。Python-Markdown并不会为你提供CSS,这个责任在你自己。如果我没记错的话,Pygments有一个命令可以生成CSS文件。建议你查看一下他们的文档。
举个例子,你提到的那个示例允许你切换不同的主题。Pygments生成的实际HTML输出是不会改变的,只有不同的CSS文件被用来给相同的标记添加样式。