1 | | = ソースコードのシンタックスカラーリング = #SyntaxColoringofSourceCode |
2 | | Trac は [WikiProcessors#CodeHighlightingSupport wiki プロセッサ] ブロック内の Wiki 形式のテキストと [wiki:TracBrowser リポジトリブラウザ] での、ソースコードの言語特有のシンタックスハイライトに対応しています。 |
3 | | |
4 | | Trac では色付けを行うために、とても多くのプログラミング言語に対応している外部ライブラリを使用しています。 |
5 | | |
6 | | 現在、 Trac は以下にあげるパッケージを 1 つ以上使用して、シンタックスハイライトを実現しています: |
7 | | |
8 | | * [http://pygments.pocoo.org/ Pygments] 最も推奨するシステムです。というのもカバーしているプログラミング言語、構造化テキストが多いこととサポート体制が活発であるからです |
9 | | * [http://www.codento.com/people/mtr/genscript/ GNU Enscript] 通常 UNIX で利用できますが、 Windows ではサポートされていません |
10 | | * [http://silvercity.sourceforge.net/ SilverCity] レガシーなシステムです。いくつかのバージョンには [trac:TracFaq#why-is-my-css-code-not-being-highlighted-even-though-i-have-silvercity-installed 問題があります] |
| 1 | = Syntax Coloring of Source Code |
| 2 | Trac supports language-specific syntax highlighting of source code within wiki formatted text in [WikiProcessors#CodeHighlightingSupport wiki processors] blocks and in the [TracBrowser repository browser]. Syntax coloring is provided using [http://pygments.org/ Pygments], which covers a wide range of programming languages and other structured texts, and is actively supported. If Pygments is not available, Trac will display the content as plain text. |
28 | | === 対応している MIME タイプ === #KnownMIMETypes |
| 21 | If a mimetype property such as `svn:mime-type` is set to `text/plain`, there is no coloring even if file is known type like `java`. |
| 22 | |
| 23 | === Direct Rendering |
| 24 | |
| 25 | Rich content may be directly //rendered// instead of syntax highlighted. This usually depends on which auxiliary packages are installed and on which components are activated in your setup. For example a `text/x-rst` document will be rendered via `docutils` if it is installed and the `trac.mimeview.rst.ReStructuredTextRenderer` is not disabled, and will be syntax highlighted otherwise. |
| 26 | |
| 27 | In a similar way, a document with the mimetype `text/x-trac-wiki` is rendered using the Trac wiki formatter, unless the `trac.mimeview.api.WikiTextRenderer` component is disabled. |
| 28 | |
| 29 | HTML documents are directly rendered only if the `render_unsafe_html` settings are enabled in the TracIni (those settings are present in multiple sections, as there are different security concerns depending where the document comes from). If you want to ensure that an HTML document gets syntax highlighted and not rendered, use the `text/xml` mimetype. |
| 30 | |
| 31 | === Known MIME types |
32 | | Note: 高度なコンテンツはシンタックスハイライトの代わりに直接レンダリングされるかもしれません。これはインストールされている予備のパッケージ及び設定したコンポーネントによって決まります。例えば、`text/x-rst` ドキュメントでは、`docutils` がインストールされていて、`trac.mimeview.rst.ReStructuredTextRenderer` が無効になっておらず、他にシンタックスハイライトが存在するような場合、`docutils` を通してレンダリングされます。 |
33 | | |
34 | | 同様の方法で、 MIME タイプ `text/x-trac-wiki` のドキュメントは Trac Wiki フォーマットを使ってレンダリングされます。ただし、 `trac.mimeview.api.WikiTextRenderer` コンポーネントは無効とされます。 |
35 | | |
36 | | HTML ドキュメントは `render_unsafe_html` が TracIni で有効に設定されている場合に限り、直接レンダリングされます。 (ドキュメントがどこからくるかによって異なるセキュリティ上の懸念がある場合、これらの設定は、複数のセクションに存在します)。もし HTML ドキュメントがレンダリングを行わず、シンタックスハイライトなるよう保証したいのであれば、 MIME タイプ `text/xml` を使用してください。 |
37 | | |
38 | | 'svn:mime-type' 属性が 'text/plain' のように MIME タイプで設定されている場合、例え 'java' で書かれたファイルであっても色づけされません。 |
39 | | |
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" の設定に追加してください。 |
106 | | |
107 | | == その他のソフトウェア == #ExtraSoftware |
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/** |
112 | | |