19

我将 Sphinx 用于代码文档并在代码中使用多种语言,我想为所有代码设置突出显示。Sphinx 简要提到了它支持的一些语言(在此页面上),然后提到它使用Pygments进行词法分析和突出显示。筛选 Sphinx 和 Pygments 的文档让我不知道如何做诸如高亮 Objective-c 代码之类的事情。

Pygments 确实提到了它支持的语言列表,但是并没有告诉我必须在 Sphinx(.rst 文件)中使用的确切语法来告诉代码块突出显示特定语言。例如,要突出显示 c++ 代码,您只需在代码块之前使用它:

.. highlight:: c++

然而,在尝试了这些之后,我似乎无法突出显示 Objective-C 代码:

.. highlight:: Objective-C
.. highlight:: objective-c
.. highlight:: Obj-C
.. highlight:: obj-c

任何人都可以向我提供语言列表(您会在文档中引用它们)吗?

4

3 回答 3

15

pygmentize -L lexers列出所有支持的词法分析器。

于 2019-02-16T09:47:30.823 回答
9

据我所知,列表在文件pygments/lexers/_mapping.py中,在(自动生成的)字典LEXERS中。在我的副本中,我看到一条线

'ObjectiveCLexer': ('pygments.lexers.compiled', 'Objective-C', ('objective-c', 'objectivec', 'obj-c', 'objc'), ('*.m',), ('text/x-objective-c',)),

我认为这应该意味着任何标签objective-cobjectivecobj-cobjc应该可以工作,只要您的 Pygments 版本是最新的。他们为我工作。

于 2012-07-03T18:08:23.090 回答
3

如果你安装 pygments 模块。您可以使用此脚本获取支持的荧光笔列表:

from pygments.lexers import get_all_lexers

lexers = get_all_lexers()
for lexer in lexers:
        print "-\t" + lexer[0] + "\n"
        print "\t-\t" + "\n\t-\t".join(lexer[1]) + "\n"

输出的第一级缩进将是通用名称,第二级将是您可以使用的荧光笔的短名称。

示例输出

  • Debian 资源列表

    • 来源清单
    • 来源.list
  • 德尔福

    • 德尔福
    • 帕斯
    • 帕斯卡
    • 对象帕斯卡

资源

于 2014-12-01T09:38:19.500 回答