我想创建一个可以在Sphinx环境中使用的自定义语法高亮显示程序,这可行吗?如果可以,我该如何处理?
我想创建一个可以在Sphinx环境中使用的自定义语法高亮显示程序,这可行吗?如果可以,我该如何处理?
Sphinx (http://sphinx-doc.org/) 在内部使用 Pygments (http://pygments.org/) 作为语法高亮器。Pygments 支持添加自定义的语法高亮器 (lexer),具体描述请参见http://pygments.org/docs/lexerdevelopment/。
我将尝试在 Pygments 中定义一个新的自定义 lexer,并在 conf.py
Sphinx 配置文件中初始化该新的自定义 lexer。以下是一个可以帮助你入门的小例子:
from pygments.lexer import RegexLexer
from pygments import token
from sphinx.highlighting import lexers
class BCLLexer(RegexLexer):
name = 'MYLANG'
tokens = {
'root': [
(r'MyKeyword', token.Keyword),
(r'[a-zA-Z]', token.Name),
(r'\s', token.Text)
]
}
lexers['MYLANG'] = BCLLexer(startinline=True)
PhpLexer
类的一个选项,但是对于RegexLexer
,这个关键字参数未被定义。 - Waleed Khan