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

问题描述 投票:10回答:3

我正在使用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

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

documentation-generation python-sphinx pygments
3个回答
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版本是最新的。他们为我工作。


6
投票

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来源列表 来源清单 的sources.list
  • 德尔福 德尔福 步 帕斯卡 objectpascal

Source

© www.soinside.com 2019 - 2024. All rights reserved.