Edgewall Software

The Processor Bazaar

THIS PAGE IS DEPRECATED: It will be removed after 01 July 2015. If you are the author of a macro listed here, please move it to more suitable hosting. trac-hacks.org provides free hosting for TracPlugins, WikiProcessors and WikiMacros.

Looking for fresh wiki processor goodness for your Trac installation? Have you written a clever wiki-processor you're dying to share with the world? This is the place. This wiki-processor bazaar is for sharing information about user-developed processors and links to source code and requests.

Note: Please state your name, email and version of Trac your wiki-processor is developed for.

How to use these wiki-processors

  • Just put the files into the wikimacros directory of your Python installation, e.g. /usr/lib/python2.3/site-packages/trac/wikimacros (for 0.10, this might be /usr/lib/python2.?/site-packages/trac/mimeview). The macros will then be available for all your Trac environments.
  • Alternatively, put the files into the wiki-macros directory of your Trac environment, e.g. /data/trac/wiki-macros or for 0.11 into the plugins directory of your Trac environment. The macros will be available only for this environment.

The wiki-processors should match your trac version, ie 0.11 uses class YourCustomMacro(WikiMacroBase) where previous version used def execute(hdf, txt, env). See wiki:WikiMacros for details.


A wiki-processor for encapsulating wiki text inside a box. The box will have a legend and a modifiable color. To use this, simply place it into wikimacro directory and use it.


#!color: blue
#!legend: My Title
Here comes the actual text that will be inside the box.
You can even use wiki-formatting in here.

You can modify the default COLOR and LEGEND and the STYLE in the plugin file.
Download: LegendBox.py
By: Jan Finell (finell at cenix-bioscience.com)
Required ver: > 0.8pre (though changing the import of the wiki_to_html function will make it work on older versions)

For version 0.9pre2, I could not use the version above, some things have changed. The version below works for me.

Download: LegendBox-0.9pre2.py
By: Pedro Melo (melo at simplicidade.org)
Required ver: > 0.9pre2

For Trac version 0.10:
Download: LegendBox-0.10.py
By: Lars Stavholm (stava at linadd.org)
Required ver: ≥ 0.10

For Trac version 0.11:
Download: LegendBox-0.11.2.py
By: Lars Stavholm (stava at linadd.org) modified by cboos
Required ver: ≥ 0.11

For Trac version 0.12:
Download: LegendBox-0.12.py
By: Lars Stavholm (stava at linadd.org) modified by cboos
Required ver: ≥ 0.12-r8372

With the 0.12 version, the legend box can also be used like this:

#!LegendBox color=blue legend="My Title"
Here comes the actual text that will be inside the box.
You can even use wiki-formatting in here.


A Trac wiki-processor to display text as a striped listing.

The output is enclosed in a <pre> block of class "striped", and each line in a <div> block of alternating "even-stripe" and "odd-stripe" classes. You must set this classes up in your templates/site_css.cs file, or alternatively use the processor arguments "box-style", "even-style" and "odd-style".

The "number" argument allows automatic numbering of lines; it accepts three args: a Python-style format (quotes and all), the initial number for the first line, and the step between numbers. If no format is passed, there is no automatic numbering; otherwise, the start and step arguments default to 1.


#!number: " %3d ", 100, 10
#!box-style: border: thick solid #C0C0C0; margin: 20px; width: 70%;
#!even-style: background-color: #DAC0DA;
...text here...

(A lot of ideas and syntax for arguments shamelessly stolen from previous entry by Jan Finell. Thanks!)

Download: Striped.py
By: Juanma Barranquero (lekktu at gmail.com)
Tested on: 0.8 (should work on previous versions, though)


A DocBook WikiProcessor.


  • libxml2-python (developed with version 2.6.11)
  • libxslt-python (developed with version 1.1.8)

Specify "stylesheet" under the "docbook" section in your trac.ini, for example:

stylesheet = /usr/share/xml/docbook/stylesheet/nwalsh/xhtml/docbook.xsl

Include DocBook mark-up in a wiki blockquote, with the docbook processor selected:

...DocBook mark-up here...

Download: docbook.py
By: Simon Ward <simon@…>
Version: 0.8.x

If you have problems with an error message like 'get_config is not supported' try: stylesheet = env.config.get('docbook', 'stylesheet')


A WikiProcessor which sorts tables with JavaScript.

Requires sorttable.js.


  1. Fetch sorttable.js (see above)
  2. Put the script somewhere on your HTTP server and set the variable sorttable_js_url in TracIni OR put the JavaScript file in the same directory as the Python file.
  3. Use WikiProcessor syntax like:
    || Strings || Numbers ||
    || abc     || 2       ||
    || def     || 10      ||
    || abd     || 9       ||
    Use the usual table syntax for wiki pages.
  4. If the browser has JavaScript enabled, you will be able to sort the resulting table by clicking on the headings in the first row.

Download: http://www.sschwarzer.net/download/sortedtable.py
By: Stefan Schwarzer (sschwarzer at sschwarzer dot net)
Version: ≥ 0.8 (tested with 0.8)


A WikiProcessor that colourises IRC logs.

To use, import the stylesheets in your $TRAC_ENV/templates/site_css.cs and mark-up your IRC text as follows:


It formats logs in the default format used by Xchat, as well as some others.

The irclog processor is distributable under the terms of the GNU GPL.

Based on irclog2html.py by Marius Gedminas.

Download: http://projects.bleah.co.uk/misc/browser/tracirclog/trunk
By: Simon Ward <simon@…>
Version: 0.8.x


A simple processor that wraps the processed text in blockquote tags. While Trac provides markup for blockquotes, a processor appears to be easier to use for larger quotes.


This is the text that goes between the blockquote tags. Even WikiFormatting works.
You might want to add custom CSS for blockquotes...

A working example can be seen here.

Download: blockquote-0.1.1.py
By: Michael Renzmann <mrenzmann@…>
Version: 0.9b2 (might work with older versions as well)
Last change: v0.1.1 now correctly handles WikiFormatting in quoted texts


A processor that uses Graphviz' dot to make graphs.


digraph G {
A [color = green];
A -> B -> C -> A
C -> B

Version: ≥ 0.8
Download: graphviz.py
By: Vegard Eriksen zyp at jvnv dot net

Note: A much more powerful Graphviz processor is available here.


A processor that uses LaTeX to make math. Loosely based on graphviz.py and mt-math.



Version: ≥ svn162
Download: https://svn.truelite.it/packages/browser/trunk/truelite-trac-utils/
By: Mirko Maischberger mirko dot maischberger at gmail dot com

Note: This spawns a latex process, so you'll need tetex, tetex-extra and dvipng. This is not suitable for public wikis, because spawning an external latex process is not secure when not properly configured.


A processor that produces Gentoo-like document code listing.


~ $ make

(becomes root and install)
~ $ su
~ # make install

Requires Trac Version: ≥ 0.12 (maybe 0.11, not yet tested)
Download: http://trac-hacks.org/wiki/ShellExampleMacro
By: Nathaniel Madura (nmadura at umich dot edu)
Current Version: 0.12.1

code highlighting

A simple processor (deployed as plugin) that uses predefined processor to make highlighted output of arbitrary source code. This language of the source code is pass as file extension (like css for CSS) instead of mimetype.

You have to use an additional code highlighting processor such as Pygments


div.lang-name-template {
  margin: -1em 1.75em 1em 1.75em;
  background: #F7F7F7;
  text-align: right;
  padding-right: 0.5em;
  border-style: solid;
  border-color: #D7D7D7;
  border-width: 0 1px 1px 1px;

This will produce:

Screenshot of code processor's output

Download: https://svn.mayastudios.de/mtpp/wiki/Plugins/CodeProcessor
By: Sebastian Krysmanski
Version: Runs on Trac 0.11.x


A simple processor that uses predefined processor to make highlighted output of the Pascal source code.
You have to use additional code highlighting processor such as enscript


procedure Example(const A, B : byte);
	if (A=B) then for i:=0 to 25 do begin

This will produce:

procedure Example(const A, B : byte);
    if (A=B) then for i:=0 to 25 do begin

Download: pascal-0.0.1.py
By: SHadoW
Version: 0.0.1 Tested on trac 0.10 but should work on older versions


Requests, comments, etc go here.

See also: WikiProcessors

Last modified 8 years ago Last modified on Feb 11, 2015, 8:43:15 PM

Attachments (21)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.