I am interested in creating a custom syntax highlighter that can be used in a Sphinx environment. Is this possible? If so how would I go about doing it?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Background
Sphinx (http://sphinx-doc.org/) internally uses Pygments (http://pygments.org/) as a syntax highligher. Pygments supports adding custom syntax highlighter (lexer) as described here http://pygments.org/docs/lexerdevelopment/.
Example usage
I would try to define a new custom lexer in Pygments and initialize that new custom lexer in the conf.py
sphinx configuration file. A small example that should get you started:
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)