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
-
Delphi
- Дельфи
- па
- паскаль
- ObjectPascal
Источник