| 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]] |