Changes between Version 1 and Version 2 of TracSyntaxColoring
- Timestamp:
- 09/18/14 10:48:12 (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TracSyntaxColoring
v1 v2 1 1 = ソースコードのシンタックスカラーリング = #SyntaxColoringofSourceCode 2 Trac は [ wiki:WikiFormatting Wiki形式]のテキストと [wiki:TracBrowser リポジトリブラウザ] での、ソースコードの言語特有のシンタックスハイライトに対応しています。2 Trac は [WikiProcessors#CodeHighlightingSupport wiki プロセッサ] ブロック内の Wiki 形式のテキストと [wiki:TracBrowser リポジトリブラウザ] での、ソースコードの言語特有のシンタックスハイライトに対応しています。 3 3 4 色付けを行うために、 Trac はとても多くのプログラミング言語に対応している外部のライブラリを使用しています。4 Trac では色付けを行うために、とても多くのプログラミング言語に対応している外部ライブラリを使用しています。 5 5 6 現在、 Trac は以下にあげる 1 つ以上のパッケージを使用して、シンタックスハイライトを実現しています:6 現在、 Trac は以下にあげるパッケージを 1 つ以上使用して、シンタックスハイライトを実現しています: 7 7 8 * [http:// www.codento.com/people/mtr/genscript/ GNU Enscript]9 * [http:// silvercity.sourceforge.net/ SilverCity]10 * [http:// pygments.pocoo.org/ Pygments] (0.10 では対応したプラグインが必要です。 [#AboutPygments 以下] を参照してください。)8 * [http://pygments.pocoo.org/ Pygments] 最も推奨するシステムです。というのもカバーしているプログラミング言語、構造化テキストが多いこととサポート体制が活発であるからです。 9 * [http://www.codento.com/people/mtr/genscript/ GNU Enscript] 通常 UNIX で利用できますが、 Windows ではサポートされていません。 10 * [http://silvercity.sourceforge.net/ SilverCity] レガシーなシステムです。いくつかのバージョンには [http://trac.edgewall.org/wiki/TracFaq#why-is-my-css-code-not-being-highlighted-even-though-i-have-silvercity-installed 問題があります] 11 11 12 シンタックスハイライトを有効にするためには、ただこれらのパッケージをインストールするだけです。追加のコンフィグレーションは必要ありませんが、カラーリングを修正するためには、 `trac/htdocs/css/code.css` を参照してください。13 12 14 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 13 シンタックスカラーリングを有効にするには、これらのパッケージのどれか 1 つまたは 1 つ以上をインストールするだけです ( 下記の [#ExtraSoftware その他のソフトウェア] を参照 ) 14 もし、これらのパッケージの中で適用できるものがなければ、 Trac はプレーンテキストとしてデータを表示します。 15 15 16 シンタックスハイライトを使用するとき、可能な限り Trac は自動的に Enscript よりも !SilverCity のハイライトを優先します (下の注を参照のこと)。17 18 どちらのパッケージも使用できないときは、 Trac はプレーンテキストでデータを表示します。19 20 '''Note:''' Enscript はとても多くのプログラミング言語に対応しますが、 !SilverCity はライブラリであり、外部プロセスで実行されないので、 Enscript よりも処理が速いです。21 22 === !SilverCity について === #AboutSilverCity23 !SilverCity は [http://www.scintilla.org/ Scintilla] の構文解析エンジンを使用します。 Scintilla は !SilverCity が実装しているよりもより多くのプログラミング言語に対応しています。もし、 !SilverCity に Scintilla が対応しているプログラミング言語を追加したいならば、そんなに難しいことではありません。どのようにすればいいのかは、 [http://trac.edgewall.org/wiki/SilverCityAddLanguage SilverCityAddLanguage] を参照してください。24 16 25 17 === Pygments について === #AboutPygments 26 18 27 Trac 0.11 からは [http://pygments.org/ Pygments] が新しいデフォルトのハイライトライブラリになります。 Pygments は Python で実装され、非常に高速で、拡張しやすく、 [http://pygments.org/docs/ 良いドキュメント] があるハイライトライブラリです。 Enscript や Scintilla ほど多くの言語をサポートしませんが総合的な出力品質は、はるかに良いです。19 Trac 0.11 以降で、 [http://pygments.org/ pygments] はデフォルトのハイライトパッケージとなりました。ハイライト用のライブラリがピュアな Python コードで書かれていて、とても速く、拡張しやすく [http://pygments.org/docs/ ドキュメントが豊富です] 。 28 20 29 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] にチケットを登録してください。21 Pygments のデフォルトのスタイルは、 trac.ini の [TracIni#mimeviewer-section mime-viewer] セクションで指定できます。デフォルトのスタイルは、 [/prefs/pygments 個人設定のシンタックスハイライトタブ] 上のスタイルを設定することで、オーバーライドされます。 30 22 31 23 Pygments の構文解析エンジンが対応するリストは毎週のように更新されています。以下のリストが古い可能性は非常に高いです。 正確には [http://pygments.org/docs/lexers/ supported lexers] のページを参照してください。 … … 34 26 == 対応しているシンタックスハイライト == #SyntaxColoringSupport 35 27 36 || || !SilverCity || Enscript || Pygments || 37 || Ada || || X || || 38 || Asm || || X || || 39 || Apache Conf (htaccess)) || || || X || 40 || * ASP || X || X || || 41 || * C || X || X || X || 42 || * C# || || X(2) || X || 43 || * C++ || X || X || X || 44 || * Java || X(4)|| X || X || 45 || Awk || || X || || 46 || Boo || || || X || 47 || CSS || X || || X || 48 || Python Doctests || || || X || 49 || Diff || || X || X || 50 || Eiffel || || X || || 51 || Elisp || || X || || 52 || Fortran || || X(3) || || 53 || Haskell || || X || X || 54 || Genshi || || || X || 55 || HTML || X || X || X || 56 || IDL || || X || || 57 || INI || || || X || 58 || Javascript || X || X || X || 59 || Lua || || || X || 60 || m4 || || X || || 61 || Makefile || || X || X || 62 || Mako || || || X || 63 || Matlab || || X (5) || || 64 || Mygthy || || || X || 65 || Objective-C|| || X || || 66 || OCaml || || || X || 67 || Pascal || || X || X || 68 || * Perl || X || X || X || 69 || * PHP || X || || X || 70 || PSP || X || || || 71 || Pyrex || || X || || 72 || * Python || X || X || X || 73 || * Ruby || X || X (1) || X || 74 || Scheme || || X || X || 75 || Shell || || X || X || 76 || Smarty || || || X || 77 || SQL || X || X || X || 78 || Troff || || X || X || 79 || TCL || || X || || 80 || Tex || || X || X || 81 || Verilog || X(4) || X || || 82 || VHDL || || X || || 83 || Visual Basic |||| X || X || 84 || VRML || || X || || 85 || XML || X || || X || 28 === 対応している MIME タイプ === #KnownMIMETypes 86 29 87 ''(*) [wiki:WikiFormatting WikiFormatting] の WikiProcessors でシンタックスハイライトが対応しています。'' 30 [[KnownMimeTypes]] 88 31 89 ''(1) Enscript では Ruby のハイライトは含まれていません。 Ruby のハイライトルールは [http://neugierig.org/software/ruby/] から入手することができます。'' 32 Note: 高度なコンテンツはシンタックスハイライトの代わりに直接レンダリングされるかもしれません。これはインストールされている予備のパッケージ及び設定したコンポーネントによって決まります。例えば、`text/x-rst` ドキュメントでは、`docutils` がインストールされていて、`trac.mimeview.rst.ReStructuredTextRenderer` が無効になっておらず、他にシンタックスハイライトが存在するような場合、`docutils` を通してレンダリングされます。 90 33 91 ''(2) C# のハイライトは Enscript の配布物には含まれていません。 C# 用のハイライトのルールは http://wiki.hasno.info/index.php/Csharp.st より入手可能です。34 同様の方法で、 MIME タイプ `text/x-trac-wiki` のドキュメントは Trac Wiki フォーマットを使ってレンダリングされます。ただし、 `trac.mimeview.api.WikiTextRenderer` コンポーネントは無効とされます。 92 35 93 ''(3) Fortran: Enscript ではパッケージ化されている固定のソース形式のみをサポートしています。 Fortran 90x/2003 のハイライトルールは http://wiki.hasno.info/index.php/F90.st から入手することができます。36 HTML ドキュメントは `render_unsafe_html` が TracIni で有効に設定されている場合に限り、直接レンダリングされます。 (ドキュメントがどこからくるかによって異なるセキュリティ上の懸念がある場合、これらの設定は、複数のセクションに存在します)。もし HTML ドキュメントがレンダリングを行わず、シンタックスハイライトなるよう保証したいのであれば、 MIME タイプ `text/xml` を使用してください。 94 37 95 ' '(4) 2006 年 11 月 23 日にリリースされた Silvercity 0.9.7 以来更新されていません。38 'svn:mime-type' 属性が 'text/plain' のように MIME タイプで設定されている場合、例え 'java' で書かれたファイルであっても色づけされません。 96 39 97 ''(5) デフォルトで `.m` ファイルは Objective-C ファイルとして扱われます。 MATLAB ファイルとして `.m` ファイルを扱うには、 [wiki:TracIni#mimeviewer-section "trac.ini の [mimeviewer] セクション"]の "mime_map" に "text/x-matlab:m" を追加してください。 40 === ハイライトパッケージがサポートする言語 === #language-supported 41 42 このリストはほんの一例です: 43 44 || ||= !SilverCity =||= Enscript =||= Pygments =|| 45 || Ada || || ✓ || || 46 || Asm || || ✓ || || 47 || Apache Conf || || || ✓ || 48 || ASP || ✓ || ✓ || || 49 || C || ✓ || ✓ || ✓ || 50 || C# || || ✓ ^[#a1 (1)]^ || ✓ || 51 || C++ || ✓ || ✓ || ✓ || 52 || CMake || ? || ? || ✓ || 53 || Java || ✓ ^[#a2 (2)]^ || ✓ || ✓ || 54 || Awk || || ✓ || || 55 || Boo || || || ✓ || 56 || CSS || ✓ || || ✓ || 57 || Python Doctests || || || ✓ || 58 || Diff || || ✓ || ✓ || 59 || Eiffel || || ✓ || || 60 || Elisp || || ✓ || || 61 || Fortran || || ✓ ^[#a1 (1)]^ || ✓ || 62 || Haskell || || ✓ || ✓ || 63 || Genshi || || || ✓ || 64 || HTML || ✓ || ✓ || ✓ || 65 || IDL || || ✓ || || 66 || INI || || || ✓ || 67 || Javascript || ✓ || ✓ || ✓ || 68 || Lua || || || ✓ || 69 || m4 || || ✓ || || 70 || Makefile || || ✓ || ✓ || 71 || Mako || || || ✓ || 72 || Matlab ^[#a3 (3)]^ || || ✓ || ✓ || 73 || Mygthy || || || ✓ || 74 || Objective-C || || ✓ || ✓ || 75 || OCaml || || || ✓ || 76 || Pascal || || ✓ || ✓ || 77 || Perl || ✓ || ✓ || ✓ || 78 || PHP || ✓ || || ✓ || 79 || PSP || ✓ || || || 80 || Pyrex || || ✓ || || 81 || Python || ✓ || ✓ || ✓ || 82 || Ruby || ✓ || ✓ ^[#a1 (1)]^ || ✓ || 83 || Scheme || || ✓ || ✓ || 84 || Shell || || ✓ || ✓ || 85 || Smarty || || || ✓ || 86 || SQL || ✓ || ✓ || ✓ || 87 || Troff || || ✓ || ✓ || 88 || TCL || || ✓ || || 89 || Tex || || ✓ || ✓ || 90 || Verilog || ✓ ^[#a2 (2)]^ || ✓ || || 91 || VHDL || || ✓ || || 92 || Visual Basic || || ✓ || ✓ || 93 || VRML || || ✓ || || 94 || XML || ✓ || || ✓ || 95 96 97 98 ''[=#a1 (1)] Enscript のパッケージには含まれていません。 以下のハイライトルールを追加することが可能です。 99 [http://neugierig.org/software/ruby/ Ruby], 100 [http://wiki.hasno.info/index.php/Csharp.st C#], 101 [http://wiki.hasno.info/index.php/F90.st Fortran 90x/2003] 102 103 ''[=#a2 (2)] Silvercity 0.9.7 は 2006-11-23 にリリースされました。 104 105 ''[=#a3 (3)] デフォルトで、 `.m` ファイルは Objective-C のファイルだと解釈されます。 `.m` ファイルを MATLAB ファイルとして扱うためには、 "text/matlab:m" を [wiki:TracIni#mimeviewer-section "trac.ini の [mimeviewer] セクション"] 内、 "mime_map" の設定に追加してください。 98 106 99 107 == その他のソフトウェア == #ExtraSoftware 100 * GNU Enscript --http://directory.fsf.org/GNU/enscript.html101 * GNU Enscript for Windows --http://gnuwin32.sourceforge.net/packages/enscript.htm102 * !SilverCity --http://silvercity.sf.net/103 * Pygments -- http://pygments.org/108 * GNU Enscript — http://directory.fsf.org/GNU/enscript.html 109 * GNU Enscript for Windows — http://gnuwin32.sourceforge.net/packages/enscript.htm 110 * !SilverCity — http://silvercity.sf.net/ 111 * **Pygments — http://pygments.org/** 104 112 105 113 ---- 106 114 See also: WikiProcessors, WikiFormatting, TracWiki, TracBrowser 107