|  | 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 | 
          
            |  | 10 | * [http://silvercity.sourceforge.net/ SilverCity], legacy system, some versions can be [http://trac.edgewall.org/wiki/TracFaq#why-is-my-css-code-not-being-highlighted-even-though-i-have-silvercity-installed problematic] | 
          
            |  | 11 |  | 
          
            |  | 12 |  | 
          
            |  | 13 | To activate syntax coloring, simply install either one (or more) of these packages (see [#ExtraSoftware] section below). | 
          
            |  | 14 | If none of these packages is available, Trac will display the data as plain text. | 
          
            |  | 15 |  | 
          
            |  | 16 |  | 
          
            |  | 17 | === About Pygments === | 
          
            |  | 18 |  | 
          
            |  | 19 | Starting with trac 0.11 [http://pygments.org/ pygments] will be the new default highlighter. It's a highlighting library implemented in pure python, very fast, easy to extend and [http://pygments.org/docs/ well documented]. | 
          
            |  | 20 |  | 
          
            |  | 21 | The Pygments default style can specified in the [TracIni#mimeviewer-section mime-viewer] section of trac.ini. The default style can be overridden by setting a Style preference on the [/prefs/pygments preferences page]. | 
          
            |  | 22 |  | 
          
            |  | 23 | It's very likely that the list below is outdated because the list of supported pygments lexers is growing weekly. Just have a look at the page of [http://pygments.org/docs/lexers/ supported lexers] on the pygments webpage. | 
          
            |  | 24 |  | 
          
            |  | 25 |  | 
          
            |  | 26 | == Syntax Coloring Support == | 
          
            |  | 27 |  | 
          
            |  | 28 | === Known MIME Types | 
          
            |  | 29 |  | 
          
            |  | 30 | [[KnownMimeTypes]] | 
          
            |  | 31 |  | 
          
            |  | 32 |  | 
          
            |  | 33 | === List of Languages Supported, by Highlighter #language-supported | 
          
            |  | 34 |  | 
          
            |  | 35 | This list is only indicative. | 
          
            |  | 36 |  | 
          
            |  | 37 | ||                 ||= !SilverCity   =||= Enscript      =||= Pygments =|| | 
          
            |  | 38 | || Ada             ||                 ||  ✓              ||     || | 
          
            |  | 39 | || Asm             ||                 ||  ✓              ||     || | 
          
            |  | 40 | || Apache Conf     ||                 ||                 ||  ✓  || | 
          
            |  | 41 | || ASP             ||  ✓              ||  ✓              ||     || | 
          
            |  | 42 | || C               ||  ✓              ||  ✓              ||  ✓  || | 
          
            |  | 43 | || C#              ||                 ||  ✓ ^[#a1 (1)]^  ||  ✓  || | 
          
            |  | 44 | || C++             ||  ✓              ||  ✓              ||  ✓  || | 
          
            |  | 45 | || Java            ||  ✓ ^[#a2 (2)]^  ||  ✓              ||  ✓  || | 
          
            |  | 46 | || Awk             ||                 ||  ✓              ||     || | 
          
            |  | 47 | || Boo             ||                 ||                 ||  ✓  || | 
          
            |  | 48 | || CSS             ||  ✓              ||                 ||  ✓  || | 
          
            |  | 49 | || Python Doctests ||                 ||                 ||  ✓  || | 
          
            |  | 50 | || Diff            ||                 ||  ✓              ||  ✓  || | 
          
            |  | 51 | || Eiffel          ||                 ||  ✓              ||     || | 
          
            |  | 52 | || Elisp           ||                 ||  ✓              ||     || | 
          
            |  | 53 | || Fortran         ||                 ||  ✓ ^[#a1 (1)]^  ||  ✓  || | 
          
            |  | 54 | || Haskell         ||                 ||  ✓              ||  ✓  || | 
          
            |  | 55 | || Genshi          ||                 ||                 ||  ✓  || | 
          
            |  | 56 | || HTML            ||  ✓              ||  ✓              ||  ✓  || | 
          
            |  | 57 | || IDL             ||                 ||  ✓              ||     || | 
          
            |  | 58 | || INI             ||                 ||                 ||  ✓  || | 
          
            |  | 59 | || Javascript      ||  ✓              ||  ✓              ||  ✓  || | 
          
            |  | 60 | || Lua             ||                 ||                 ||  ✓  || | 
          
            |  | 61 | || m4              ||                 ||  ✓              ||     || | 
          
            |  | 62 | || Makefile        ||                 ||  ✓              ||  ✓  || | 
          
            |  | 63 | || Mako            ||                 ||                 ||  ✓  || | 
          
            |  | 64 | || Matlab ^[#a3 (3)]^  ||             ||  ✓              ||  ✓  || | 
          
            |  | 65 | || Mygthy          ||                 ||                 ||  ✓  || | 
          
            |  | 66 | || Objective-C     ||                 ||  ✓              ||  ✓  || | 
          
            |  | 67 | || OCaml           ||                 ||                 ||  ✓  || | 
          
            |  | 68 | || Pascal          ||                 ||  ✓              ||  ✓  || | 
          
            |  | 69 | || Perl            ||  ✓              ||  ✓              ||  ✓  || | 
          
            |  | 70 | || PHP             ||  ✓              ||                 ||  ✓  || | 
          
            |  | 71 | || PSP             ||  ✓              ||                 ||     || | 
          
            |  | 72 | || Pyrex           ||                 ||  ✓              ||     || | 
          
            |  | 73 | || Python          ||  ✓              ||  ✓              ||  ✓  || | 
          
            |  | 74 | || Ruby            ||  ✓              ||  ✓ ^[#a1 (1)]^  ||  ✓  || | 
          
            |  | 75 | || Scheme          ||                 ||  ✓              ||  ✓  || | 
          
            |  | 76 | || Shell           ||                 ||  ✓              ||  ✓  || | 
          
            |  | 77 | || Smarty          ||                 ||                 ||  ✓  || | 
          
            |  | 78 | || SQL             ||  ✓              ||  ✓              ||  ✓  || | 
          
            |  | 79 | || Troff           ||                 ||  ✓              ||  ✓  || | 
          
            |  | 80 | || TCL             ||                 ||  ✓              ||     || | 
          
            |  | 81 | || Tex             ||                 ||  ✓              ||  ✓  || | 
          
            |  | 82 | || Verilog         ||  ✓ ^[#a2 (2)]^  ||  ✓              ||     || | 
          
            |  | 83 | || VHDL            ||                 ||  ✓              ||     || | 
          
            |  | 84 | || Visual Basic    ||                 ||  ✓              ||  ✓  || | 
          
            |  | 85 | || VRML            ||                 ||  ✓              ||     || | 
          
            |  | 86 | || XML             ||  ✓              ||                 ||  ✓  || | 
          
            |  | 87 |  | 
          
            |  | 88 |  | 
          
            |  | 89 |  | 
          
            |  | 90 | ''[=#a1 (1)] Not included in the Enscript distribution.  Additional highlighting rules can be obtained for | 
          
            |  | 91 | [http://neugierig.org/software/ruby/ Ruby], | 
          
            |  | 92 | [http://wiki.hasno.info/index.php/Csharp.st C#], | 
          
            |  | 93 | [http://wiki.hasno.info/index.php/F90.st Fortran 90x/2003] | 
          
            |  | 94 |  | 
          
            |  | 95 | ''[=#a2 (2)] since Silvercity 0.9.7 released on 2006-11-23 | 
          
            |  | 96 |  | 
          
            |  | 97 | ''[=#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"]. | 
          
            |  | 98 |  | 
          
            |  | 99 | == Extra Software == | 
          
            |  | 100 | * GNU Enscript -- http://directory.fsf.org/GNU/enscript.html | 
          
            |  | 101 | * GNU Enscript for Windows -- http://gnuwin32.sourceforge.net/packages/enscript.htm | 
          
            |  | 102 | * !SilverCity -- http://silvercity.sf.net/ | 
          
            |  | 103 | * Pygments -- http://pygments.org/ | 
          
            |  | 104 |  | 
          
            |  | 105 | ---- | 
          
            |  | 106 | See also: WikiProcessors, WikiFormatting, TracWiki, TracBrowser |