Changes between Initial Version and Version 1 of TracSyntaxColoring


Ignore:
Timestamp:
10/21/13 10:25:16 (11 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracSyntaxColoring

    v1 v1  
     1= Syntax Coloring of Source Code =
     2Trac 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
     4To do this, Trac uses external libraries with support for a great number of programming languages.
     5
     6Currently 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
     13To activate syntax coloring, simply install either one (or more) of these packages (see [#ExtraSoftware] section below).
     14If none of these packages is available, Trac will display the data as plain text.
     15
     16
     17=== About Pygments ===
     18
     19Starting 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
     21The 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
     23It'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
     35This 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----
     106See also: WikiProcessors, WikiFormatting, TracWiki, TracBrowser