= Syntax Coloring of Source Code = 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]. To do this, Trac uses external libraries with support for a great number of programming languages. Currently Trac supports syntax coloring using one or more of the following packages: * [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 * [http://www.codento.com/people/mtr/genscript/ GNU Enscript], commonly available on Unix but somewhat unsupported on Windows * [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] To activate syntax coloring, simply install either one (or more) of these packages (see [#ExtraSoftware] section below). If none of these packages is available, Trac will display the data as plain text. === About Pygments === 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]. 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]. 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. == Syntax Coloring Support == === Known MIME Types [[KnownMimeTypes]] === List of Languages Supported, by Highlighter #language-supported This list is only indicative. || ||= !SilverCity =||= Enscript =||= Pygments =|| || Ada || || ✓ || || || Asm || || ✓ || || || Apache Conf || || || ✓ || || ASP || ✓ || ✓ || || || C || ✓ || ✓ || ✓ || || C# || || ✓ ^[#a1 (1)]^ || ✓ || || C++ || ✓ || ✓ || ✓ || || Java || ✓ ^[#a2 (2)]^ || ✓ || ✓ || || Awk || || ✓ || || || Boo || || || ✓ || || CSS || ✓ || || ✓ || || Python Doctests || || || ✓ || || Diff || || ✓ || ✓ || || Eiffel || || ✓ || || || Elisp || || ✓ || || || Fortran || || ✓ ^[#a1 (1)]^ || ✓ || || Haskell || || ✓ || ✓ || || Genshi || || || ✓ || || HTML || ✓ || ✓ || ✓ || || IDL || || ✓ || || || INI || || || ✓ || || Javascript || ✓ || ✓ || ✓ || || Lua || || || ✓ || || m4 || || ✓ || || || Makefile || || ✓ || ✓ || || Mako || || || ✓ || || Matlab ^[#a3 (3)]^ || || ✓ || ✓ || || Mygthy || || || ✓ || || Objective-C || || ✓ || ✓ || || OCaml || || || ✓ || || Pascal || || ✓ || ✓ || || Perl || ✓ || ✓ || ✓ || || PHP || ✓ || || ✓ || || PSP || ✓ || || || || Pyrex || || ✓ || || || Python || ✓ || ✓ || ✓ || || Ruby || ✓ || ✓ ^[#a1 (1)]^ || ✓ || || Scheme || || ✓ || ✓ || || Shell || || ✓ || ✓ || || Smarty || || || ✓ || || SQL || ✓ || ✓ || ✓ || || Troff || || ✓ || ✓ || || TCL || || ✓ || || || Tex || || ✓ || ✓ || || Verilog || ✓ ^[#a2 (2)]^ || ✓ || || || VHDL || || ✓ || || || Visual Basic || || ✓ || ✓ || || VRML || || ✓ || || || XML || ✓ || || ✓ || ''[=#a1 (1)] Not included in the Enscript distribution. Additional highlighting rules can be obtained for [http://neugierig.org/software/ruby/ Ruby], [http://wiki.hasno.info/index.php/Csharp.st C#], [http://wiki.hasno.info/index.php/F90.st Fortran 90x/2003] ''[=#a2 (2)] since Silvercity 0.9.7 released on 2006-11-23 ''[=#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"]. == Extra Software == * GNU Enscript -- http://directory.fsf.org/GNU/enscript.html * GNU Enscript for Windows -- http://gnuwin32.sourceforge.net/packages/enscript.htm * !SilverCity -- http://silvercity.sf.net/ * Pygments -- http://pygments.org/ ---- See also: WikiProcessors, WikiFormatting, TracWiki, TracBrowser