= ソースコードのシンタックスカラーリング = #SyntaxColoringofSourceCode Trac は [wiki:WikiFormatting Wiki形式] のテキストと [wiki:TracBrowser リポジトリブラウザ] での、ソースコードの言語特有のシンタックスハイライトに対応しています。 色付けを行うために、 Trac はとても多くのプログラミング言語に対応している外部のライブラリを使用しています。 現在、 Trac は以下にあげる 1 つ以上のパッケージを使用して、シンタックスハイライトを実現しています: * [http://www.codento.com/people/mtr/genscript/ GNU Enscript] * [http://silvercity.sourceforge.net/ SilverCity] * [http://pygments.pocoo.org/ Pygments] (0.10 では対応したプラグインが必要です。 [#AboutPygments 以下] を参照してください。) シンタックスハイライトを有効にするためには、ただこれらのパッケージをインストールするだけです。追加のコンフィグレーションは必要ありませんが、カラーリングを修正するためには、 `trac/htdocs/css/code.css` を参照してください。 Trac がインストールされたライブラリを検出できない場合は、 Trac のロギングを使用してみてください。実際に Trac から !SilverCity 0.9.6 が壊れているように見えます。 0.9.7 か 0.9.5 を使用して下さい。 http://trac.edgewall.org/wiki/TracFaq#why-is-my-css-code-not-being-highlighted-even-though-i-have-silvercity-installed シンタックスハイライトを使用するとき、可能な限り Trac は自動的に Enscript よりも !SilverCity のハイライトを優先します (下の注を参照のこと)。 どちらのパッケージも使用できないときは、 Trac はプレーンテキストでデータを表示します。 '''Note:''' Enscript はとても多くのプログラミング言語に対応しますが、 !SilverCity はライブラリであり、外部プロセスで実行されないので、 Enscript よりも処理が速いです。 === !SilverCity について === #AboutSilverCity !SilverCity は [http://www.scintilla.org/ Scintilla] の構文解析エンジンを使用します。 Scintilla は !SilverCity が実装しているよりもより多くのプログラミング言語に対応しています。もし、 !SilverCity に Scintilla が対応しているプログラミング言語を追加したいならば、そんなに難しいことではありません。どのようにすればいいのかは、 [http://trac.edgewall.org/wiki/SilverCityAddLanguage SilverCityAddLanguage] を参照してください。 === Pygments について === #AboutPygments Trac 0.11 からは [http://pygments.org/ Pygments] が新しいデフォルトのハイライトライブラリになります。 Pygments は Python で実装され、非常に高速で、拡張しやすく、 [http://pygments.org/docs/ 良いドキュメント] があるハイライトライブラリです。 Enscript や Scintilla ほど多くの言語をサポートしませんが総合的な出力品質は、はるかに良いです。 Pygments を Trac 0.11 で使用するためには、 Pygments 0.6 以上をインストールしなければなりません (また [mimeviewer] 配下にオプション pygments_default_style = colorful を追加してください)。 Trac 0.10 でも Pygments を使用したいのであれば、 trac hacks から [http://trac-hacks.org/wiki/TracPygmentsPlugin TracPygmentsPlugin] をインストールしなければなりません。なんらかのバグを発見した場合は [http://dev.pocoo.org/projects/pygments/ Pygments の Trac] にチケットを登録してください。 Pygments の構文解析エンジンが対応するリストは毎週のように更新されています。以下のリストが古い可能性は非常に高いです。 正確には [http://pygments.org/docs/lexers/ supported lexers] のページを参照してください。 == 対応しているシンタックスハイライト == #SyntaxColoringSupport || || !SilverCity || Enscript || Pygments || || Ada || || X || || || Asm || || X || || || Apache Conf (htaccess)) || || || X || || * ASP || X || X || || || * C || X || X || X || || * C# || || X(2) || X || || * C++ || X || X || X || || * Java || X(4)|| X || X || || Awk || || X || || || Boo || || || X || || CSS || X || || X || || Python Doctests || || || X || || Diff || || X || X || || Eiffel || || X || || || Elisp || || X || || || Fortran || || X(3) || || || Haskell || || X || X || || Genshi || || || X