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