2012-07-03 9 views
7

私はコードの文書化にSphinxを使用しており、コード内でいくつかの言語を使用しています。そのコードすべての強調表示を設定したいと思います。スフィンクスは、それがサポートしている言語のいくつかを簡単に言及し(on this page)、語彙分析と強調表示にはPygmentsを使用すると述べています。 SphinxとPygmentsの両方のドキュメントを調べることで、objective-cコードをハイライトするようなやり方を知ることはできませんでした。スフィンクス:サポートされているハイライト表示言語のリスト?

Pygmentsでサポートされている言語の一覧はhereですが、特定の言語を強調表示するようにSphinx(.rstファイル)内で使用する正確な構文はわかりません。例えば、++コードあなたの簡単な使用するC強調するためには、あなたのコードブロックの前に、この:

.. highlight:: c++

しかしこれらを試した後、私はObjective-Cのコードをハイライト表示するように見えることはできません。

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

誰も私を供給することができます言語のリスト(ドキュメンテーションの中でそれらを参照する)と一緒に?

答えて

6

私の知る限りでは、リストはファイルpygments/lexers/_mapping.pyの(自動生成された)辞書LEXERSにあります。私のコピーでは、私は、これはタグのいずれかがobjective-cobjectivecobj-c、またはobjcは限りPygmentsのバージョンが最新であるとして、動作する必要があることを意味すべきだと思うライン

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

を参照してください。彼らは私のために働く。

3

pygmentsモジュールをインストールする場合。あなたがサポートされ蛍光ペンの一覧を取得するには、このスクリプトを使用することができます。

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
  • デルファイ

    • デルファイ
    • PAS
    • ObjectPascalとパスカル

Source

関連する問題