Sphinx:突出显示支持的语言列表?

时间:2012-07-03 16:48:46

标签: documentation-generation python-sphinx pygments

我正在使用Sphinx代码文档并在代码中使用多种语言,我想为所有代码设置突出显示。 Sphinx简要提到了它支持的一些语言(on this page),然后提到它使用Pygments进行词法分析和突出显示。通过Sphinx和Pygments的文档筛选,我不知道如何做突出显示objective-c代码。

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

.. highlight:: c++

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

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

任何人都可以向我提供语言列表(正如您在文档中引用的那样)吗?

3 个答案:

答案 0 :(得分:8)

据我所知,该列表位于(自动生成)字典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版本是 - 至今。他们为我工作。

答案 1 :(得分: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来源列表

    • sourceslist
    • 的sources.list
  • 的Delphi

    • 的Delphi
    • PAS
    • 帕斯卡
    • objectpascal

Source

答案 2 :(得分:3)