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]. |
3 | | |
4 | | To do this, Trac uses external libraries with support for a great number of programming languages. |
5 | | |
6 | | Currently Trac supports syntax coloring using one or more of the following packages: |
7 | | |
8 | | * [http://pygments.pocoo.org/ Pygments], by far the preferred system, as it covers a wide range of programming languages and other structured texts and is actively supported |
9 | | * [http://www.codento.com/people/mtr/genscript/ GNU Enscript], commonly available on Unix but somewhat unsupported on Windows //(use is deprecated)// |
10 | | * [http://silvercity.sourceforge.net/ SilverCity], legacy system, some versions can be problematic //(use is deprecated)// |
| 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.pocoo.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. |
32 | | Note that the 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. |
| 18 | Explicit control of the mime type associated with a [WikiProcessors WikiProcessor] and file extension is available through the `mime_map` setting. For example, by default `.m` files are considered Objective-C files. In order to treat `.m` files as MATLAB files, add `text/matlab:m` to the `mime_map` setting in the [wiki:TracIni#mimeviewer-section "[mimeviewer] section of trac.ini"]. |
| 19 | |
| 20 | 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`. |
| 21 | |
| 22 | === Direct Rendering |
| 23 | |
| 24 | 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. |
40 | | === List of Languages Supported, by Highlighter #language-supported |
41 | | |
42 | | This list is only indicative. |
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)] Not included in the Enscript distribution. Additional highlighting rules can be obtained for |
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)] since Silvercity 0.9.7 released on 2006-11-23 |
104 | | |
105 | | ''[=#a3 (3)] By default `.m` files are considered Objective-C files. In order to treat `.m` files as MATLAB files, add "text/matlab:m" to the "mime_map" setting in the [wiki:TracIni#mimeviewer-section "[mimeviewer] section of trac.ini"]. |
106 | | |
107 | | == Extra Software == |
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/** |
| 32 | [[KnownMimeTypes]] |