【问题标题】:No syntax highlighting for python traceback - pygmentspython 回溯没有语法高亮显示 - pygments
【发布时间】:2014-05-07 07:01:42
【问题描述】:

我在博客上使用 pygments 版本 1.6 来做一些语法高亮(通过 CodeHilite 扩展用于降价)

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

相反,它以基本的白色字体突出显示。

said blog post here

编辑

我的代码:

<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>

【问题讨论】:

    标签: python markdown pygments


    【解决方案1】:

    我的猜测是 Pygments 工作得很好。我建议查看您的降价输出的来源和您链接到的演示的来源。我怀疑两者都会在整个引用中散布跨度,标记各个部分。

    当然,如果您不提供实际输出,我只能猜测。但如果我是正确的,您需要提供 CSS 来设置该标记的样式。 Python-Markdown 不为您提供 CSS。你有责任提供这些。如果我没记错的话,Pygments 提供了一个生成 CSS 文件的命令。我建议你查看他们的文档。

    作为一个恰当的例子,您指向的演示允许您更改为不同的主题。 pygments 实际输出的 html 永远不会改变,只是使用不同的 CSS 文件来设置相同的标记样式。

    【讨论】:

    • CSS 来自通过我发布的链接下载的文件。当使用pytb 时,Pygments(或 Codehilite)不会向 sn-p 添加任何样式标签。但是,当使用python 时会这样做。
    • 此外,html 输出确实会根据使用的词法分析器而改变。不同的词法分析器识别不同的关键字。 (即使用 python 将标记 import 与 html 词法分析器不同)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    • 2021-01-24
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 2010-11-26
    • 2016-06-09
    相关资源
    最近更新 更多