Sphinx: список поддерживаемых языков для выделения?

Я использую Sphinx для документирования кода и использую несколько языков в коде, я хотел бы настроить подсветку для всего этого кода. Sphinx кратко упоминает несколько языков, которые он поддерживает (на этой странице), а затем упоминает, что он использует Pygments для лексического анализа и выделения. Просматривая документацию для Sphinx и Pygments, я не получил ни малейшего представления о том, как сделать что-то вроде кода подсветки объектива-c.

Pygments упоминает список языков, он поддерживает, здесь, однако это не говорит мне точный синтаксис, что я должен использовать в Сфинкса (.rst файлов), чтобы сказать блок кода, чтобы выделить для конкретного языка. Например, чтобы выделить код c++, вы просто используете это перед блоком кода:

.. highlight:: c++

Однако, попробовав это, я не могу выделить код Objective-C:

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

Может ли кто-нибудь предоставить мне список языков (как вы бы назвали их в документации)?

Ответ 1

Насколько я могу судить, список находится в файле pygments/lexers/_mapping.py, в (автогенерированном) словаре LEXERS. В моей копии я вижу строку

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

Я думаю, это должно означать, что любой из тегов objective-c, objectivec, obj-c или objc должен работать, если ваша версия Pyigs обновлена. Они работают для меня.

Ответ 2

Если вы устанавливаете модуль pygments. Вы можете использовать этот script, чтобы получить список поддерживаемых маркеров:

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 Sourcelist

    • sourceslist
    • sources.list
  • Delphi

    • Дельфи
    • па
    • паскаль
    • ObjectPascal

Источник