wiki:TracSyntaxColoring

Version 1 (modified by trac, 12 years ago) ( diff )

--

Syntax Coloring of Source Code

Trac supports language-specific syntax highlighting of source code within wiki formatted text in wiki processors blocks and in the 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:

  • ​Pygments, by far the preferred system, as it covers a wide range of programming languages and other structured texts and is actively supported
  • ​GNU Enscript, commonly available on Unix but somewhat unsupported on Windows
  • ​SilverCity, legacy system, some versions can be ​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 ​pygments will be the new default highlighter. It's a highlighting library implemented in pure python, very fast, easy to extend and ​well documented.

The Pygments default style can specified in the mime-viewer section of trac.ini. The default style can be overridden by setting a Style preference on the 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 ​supported lexers on the pygments webpage.

Syntax Coloring Support

Known MIME Types

MIME TypesWikiProcessors
application/javascriptjs
application/msworddoc dot
application/pdfpdf
application/postscriptps
application/rss+xmlrss
application/rtfrtf
application/x-cshcsh
application/x-dos-batchbat batch cmd dos
application/x-genshigenshi
application/x-shsh
application/x-troffnroff roff troff
application/x-yamlyaml yml
application/xsl+xmlxsl
application/xslt+xmlxslt
image/svg+xmlsvg
image/x-iconico
model/vrmlvrml wrl
text/csscss
text/htmlhtm html
text/html+jinjajinja
text/plainAUTHORS COPYING ChangeLog INSTALL README RELEASE TXT text txt
text/x-adaada adb ads
text/x-apacheconfapache apacheconf
text/x-asmasm
text/x-aspasp
text/x-awkawk
text/x-c++hdrH HH c++hdr hh hpp
text/x-c++srcC C++ CC c++ c++src cc cpp
text/x-chdrchdr h
text/x-csharpC# c# cs csharp
text/x-csrcc csrc xs
text/x-diffdiff patch
text/x-dylandylan
text/x-eiffele eiffel
text/x-elispel elisp
text/x-fortranf fortran
text/x-haskellhaskell hs
text/x-idlice idl
text/x-infinf
text/x-inicfg ini
text/x-javajava
text/x-kshksh
text/x-lualua
text/x-m4m4
text/x-mailmail
text/x-makefileGNUMakefile Makefile make makefile mk
text/x-nginx-confnginx nginx-conf
text/x-objcm mm objc
text/x-ocamlml mli ocaml
text/x-pascalpas pascal
text/x-perlPL perl pl pm
text/x-phpphp php3 php4
text/x-psppsp
text/x-pyrexpyrex pyx
text/x-pythonpy python
text/x-python-doctestpycon python-doctest
text/x-rfcrfc
text/x-rstrst
text/x-rubyrb ruby
text/x-schemescheme scm
text/x-sqlsql
text/x-tcltcl
text/x-textex
text/x-textiletextile txtl
text/x-vbabas vb vba
text/x-verilogv verilog
text/x-vhdlvhd vhdl
text/x-zshzsh
text/xmlxml

List of Languages Supported, by Highlighter

This list is only indicative.

SilverCity Enscript Pygments
Ada ✓
Asm ✓
Apache Conf ✓
ASP ✓ ✓
C ✓ ✓ ✓
C# ✓ (1) ✓
C++ ✓ ✓ ✓
Java ✓ (2) ✓ ✓
Awk ✓
Boo ✓
CSS ✓ ✓
Python Doctests ✓
Diff ✓ ✓
Eiffel ✓
Elisp ✓
Fortran ✓ (1) ✓
Haskell ✓ ✓
Genshi ✓
HTML ✓ ✓ ✓
IDL ✓
INI ✓
Javascript ✓ ✓ ✓
Lua ✓
m4 ✓
Makefile ✓ ✓
Mako ✓
Matlab (3) ✓ ✓
Mygthy ✓
Objective-C ✓ ✓
OCaml ✓
Pascal ✓ ✓
Perl ✓ ✓ ✓
PHP ✓ ✓
PSP ✓
Pyrex ✓
Python ✓ ✓ ✓
Ruby ✓ ✓ (1) ✓
Scheme ✓ ✓
Shell ✓ ✓
Smarty ✓
SQL ✓ ✓ ✓
Troff ✓ ✓
TCL ✓
Tex ✓ ✓
Verilog ✓ (2) ✓
VHDL ✓
Visual Basic ✓ ✓
VRML ✓
XML ✓ ✓

(1) Not included in the Enscript distribution. Additional highlighting rules can be obtained for ​Ruby, ​C#, ​Fortran 90x/2003

(2) since Silvercity 0.9.7 released on 2006-11-23

(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 [mimeviewer] section of trac.ini.

Extra Software


See also: WikiProcessors, WikiFormatting, TracWiki, TracBrowser

Note: See TracWiki for help on using the wiki.