12

Sphinx 環境で使用できるカスタム構文ハイライターの作成に興味があります。これは可能ですか?もしそうなら、どうすればそれを行うことができますか?

4

1 に答える 1

20

バックグラウンド

Sphinx ( http://sphinx-doc.org/ ) は内部的に Pygments ( http://pygments.org/ ) を構文ハイライガーとして使用しています。Pygments は、http://pygments.org/docs/lexerdevelopment/ で説明されているように、カスタム構文ハイライター (レクサー) の追加をサポートしています

使用例

Pygments で新しいカスタム lexer を定義し、conf.pysphinx 構成ファイルでその新しいカスタム 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)
于 2013-05-09T19:56:42.033 に答える