<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://t2bwiki.iihe.ac.be/index.php?action=history&amp;feed=atom&amp;title=WikiProcessors</id>
	<title>WikiProcessors - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://t2bwiki.iihe.ac.be/index.php?action=history&amp;feed=atom&amp;title=WikiProcessors"/>
	<link rel="alternate" type="text/html" href="https://t2bwiki.iihe.ac.be/index.php?title=WikiProcessors&amp;action=history"/>
	<updated>2026-04-20T22:28:12Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://t2bwiki.iihe.ac.be/index.php?title=WikiProcessors&amp;diff=361&amp;oldid=prev</id>
		<title>Maintenance script: Created page with &quot; == Wiki Processors ==  Processors are WikiMacros designed to provide alternative markup formats for the [TracWiki Wiki engine]. Processors can be thought of as &#039;&#039;macro functi...&quot;</title>
		<link rel="alternate" type="text/html" href="https://t2bwiki.iihe.ac.be/index.php?title=WikiProcessors&amp;diff=361&amp;oldid=prev"/>
		<updated>2015-08-26T12:29:30Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot; == Wiki Processors ==  Processors are WikiMacros designed to provide alternative markup formats for the [TracWiki Wiki engine]. Processors can be thought of as &amp;#039;&amp;#039;macro functi...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
== Wiki Processors ==&lt;br /&gt;
&lt;br /&gt;
Processors are WikiMacros designed to provide alternative markup formats for the [TracWiki Wiki engine]. Processors can be thought of as &amp;#039;&amp;#039;macro functions to process user-edited text&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Wiki processors can be used in any Wiki text throughout Trac,&lt;br /&gt;
for various different purposes, like:&lt;br /&gt;
 - [#CodeHighlightingSupport syntax highlighting] or for rendering text verbatim,&lt;br /&gt;
 - rendering [#HTMLrelated Wiki markup inside a context], &lt;br /&gt;
   like inside &amp;lt;div&amp;gt; blocks or &amp;lt;span&amp;gt; or within &amp;lt;td&amp;gt; or &amp;lt;th&amp;gt; table cells,&lt;br /&gt;
 - using an alternative markup syntax, like [[WikiHtml| raw HTML]] and&lt;br /&gt;
   [[WikiRestructuredText| Restructured Text]],&lt;br /&gt;
   or [http://www.textism.com/tools/textile/ textile]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Using Processors ===&lt;br /&gt;
&lt;br /&gt;
To use a processor on a block of text, first delimit the lines using&lt;br /&gt;
a Wiki &amp;#039;&amp;#039;code block&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The lines&lt;br /&gt;
that should be processed...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Immediately after the &amp;lt;tt&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/tt&amp;gt; or on the line just below, &lt;br /&gt;
add &amp;lt;tt&amp;gt;#!&amp;lt;/tt&amp;gt; followed by the &amp;#039;&amp;#039;processor name&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#processorname&lt;br /&gt;
The lines&lt;br /&gt;
that should be processed...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the &amp;quot;shebang&amp;quot; notation, familiar to most UNIX users.&lt;br /&gt;
&lt;br /&gt;
Besides their content, some Wiki processors can also accept &amp;#039;&amp;#039;parameters&amp;#039;&amp;#039;,&lt;br /&gt;
which are then given as &amp;lt;tt&amp;gt;key=value&amp;lt;/tt&amp;gt; pairs after the processor name, &lt;br /&gt;
on the same line. If &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; has to contain space, as it&amp;#039;s often the case for&lt;br /&gt;
the style parameter, a quoted string can be used (&amp;lt;tt&amp;gt;key=&amp;quot;value with space&amp;quot;&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
As some processors are meant to process Wiki markup, it&amp;#039;s quite possible to&lt;br /&gt;
&amp;#039;&amp;#039;nest&amp;#039;&amp;#039; processor blocks.&lt;br /&gt;
You may want to indent the content of nested blocks for increased clarity,&lt;br /&gt;
this extra indentation will be ignored when processing the content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;simple&amp;quot;&lt;br /&gt;
!= Wiki Markup =&lt;br /&gt;
!= Display =&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#td colspan=2 align=center style=&amp;quot;border: none&amp;quot;&lt;br /&gt;
&lt;br /&gt;
                &amp;lt;u&amp;gt;Example 1&amp;lt;/u&amp;gt;: Inserting raw HTML&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-----------------------------------------------------------------&lt;br /&gt;
&amp;lt;pre&amp;gt;#td style=&amp;quot;border: none&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;h1 style=&amp;quot;color: grey&amp;quot;&amp;gt;This is raw HTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;#td valign=top style=&amp;quot;border: none; padding-left: 2em&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#html&lt;br /&gt;
&amp;lt;h1 style=&amp;quot;color: grey&amp;quot;&amp;gt;This is raw HTML&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-----------------------------------------------------------------&lt;br /&gt;
&amp;lt;pre&amp;gt;#td colspan=2 align=center style=&amp;quot;border: none&amp;quot;&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;u&amp;gt;Example 2&amp;lt;/u&amp;gt;: Highlighted Python code in a &amp;lt;div&amp;gt; block with custom style&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-----------------------------------------------------------------&lt;br /&gt;
&amp;lt;pre&amp;gt;#td style=&amp;quot;border: none&amp;quot;&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;lt;pre&amp;gt;#div style=&amp;quot;background: #ffd; border: 3px ridge&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  This is an example of embedded &amp;quot;code&amp;quot; block:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;pre&amp;gt;&lt;br /&gt;
    #python&lt;br /&gt;
    def hello():&lt;br /&gt;
        return &amp;quot;world&amp;quot;&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;#td valign=top style=&amp;quot;border: none; padding: 1em&amp;quot;&lt;br /&gt;
  &amp;lt;pre&amp;gt;#div style=&amp;quot;background: #ffd; border: 3px ridge&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  This is an example of embedded &amp;quot;code&amp;quot; block:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;pre&amp;gt;&lt;br /&gt;
    #python&lt;br /&gt;
    def hello():&lt;br /&gt;
        return &amp;quot;world&amp;quot;&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-----------------------------------------------------------------&lt;br /&gt;
&amp;lt;pre&amp;gt;#td colspan=2 align=center style=&amp;quot;border: none&amp;quot;&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;u&amp;gt;Example 3&amp;lt;/u&amp;gt;: Searching tickets from a wiki page, by keywords.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-----------------------------------------------------------------&lt;br /&gt;
&amp;lt;pre&amp;gt;#td style=&amp;quot;border: none&amp;quot;&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
  #html&lt;br /&gt;
  &amp;lt;form action=&amp;quot;/query&amp;quot; method=&amp;quot;get&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;keywords&amp;quot; value=&amp;quot;~&amp;quot; size=&amp;quot;30&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Search by Keywords&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!-- To control what fields show up use hidden fields&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;col&amp;quot; value=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;col&amp;quot; value=&amp;quot;summary&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;col&amp;quot; value=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;col&amp;quot; value=&amp;quot;milestone&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;col&amp;quot; value=&amp;quot;version&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;col&amp;quot; value=&amp;quot;owner&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;col&amp;quot; value=&amp;quot;priority&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;col&amp;quot; value=&amp;quot;component&amp;quot;&amp;gt;&lt;br /&gt;
  --&amp;gt;&lt;br /&gt;
  &amp;lt;/form&amp;gt;&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;#td valign=top style=&amp;quot;border: none; padding: 1em&amp;quot;&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
  #html&lt;br /&gt;
  &amp;lt;form action=&amp;quot;/query&amp;quot; method=&amp;quot;get&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;keywords&amp;quot; value=&amp;quot;~&amp;quot; size=&amp;quot;30&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Search by Keywords&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!-- To control what fields show up use hidden fields&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;col&amp;quot; value=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;col&amp;quot; value=&amp;quot;summary&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;col&amp;quot; value=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;col&amp;quot; value=&amp;quot;milestone&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;col&amp;quot; value=&amp;quot;version&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;col&amp;quot; value=&amp;quot;owner&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;col&amp;quot; value=&amp;quot;priority&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;col&amp;quot; value=&amp;quot;component&amp;quot;&amp;gt;&lt;br /&gt;
  --&amp;gt;&lt;br /&gt;
  &amp;lt;/form&amp;gt;&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Available Processors ===&lt;br /&gt;
&lt;br /&gt;
The following processors are included in the Trac distribution:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;#default&amp;lt;/tt&amp;gt; :: Present the text verbatim in a preformatted text block. &lt;br /&gt;
                This is the same as specifying &amp;#039;&amp;#039;no&amp;#039;&amp;#039; processor name&lt;br /&gt;
                (and no &amp;lt;tt&amp;gt;#!&amp;lt;/tt&amp;gt;)&lt;br /&gt;
 &amp;lt;tt&amp;gt;#comment&amp;lt;/tt&amp;gt; :: Do not process the text in this section (i.e. contents exist&lt;br /&gt;
                only in the plain text - not in the rendered page).&lt;br /&gt;
&lt;br /&gt;
==== HTML related ====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;#html&amp;lt;/tt&amp;gt;        :: Insert custom HTML in a wiki page.&lt;br /&gt;
 &amp;lt;tt&amp;gt;#htmlcomment&amp;lt;/tt&amp;gt; :: Insert an HTML comment in a wiki page (&amp;#039;&amp;#039;since 0.12&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
Note that &amp;lt;tt&amp;gt;#html&amp;lt;/tt&amp;gt; blocks have to be &amp;#039;&amp;#039;self-contained&amp;#039;&amp;#039;,&lt;br /&gt;
#e. you can&amp;#039;t start an HTML element in one block and close it later in a second block. Use the following processors for achieving a similar effect. &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tt&amp;gt;#div&amp;lt;/tt&amp;gt; :: Wrap an arbitrary Wiki content inside a &amp;lt;div&amp;gt; element&lt;br /&gt;
             (&amp;#039;&amp;#039;since 0.11&amp;#039;&amp;#039;).&lt;br /&gt;
 &amp;lt;tt&amp;gt;#span&amp;lt;/tt&amp;gt; :: Wrap an arbitrary Wiki content inside a &amp;lt;span&amp;gt; element &lt;br /&gt;
             (&amp;#039;&amp;#039;since 0.11&amp;#039;&amp;#039;). &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;#td&amp;lt;/tt&amp;gt; :: Wrap an arbitrary Wiki content inside a &amp;lt;td&amp;gt; element (&amp;#039;&amp;#039;since 0.12&amp;#039;&amp;#039;)&lt;br /&gt;
 &amp;lt;tt&amp;gt;#th&amp;lt;/tt&amp;gt; :: Wrap an arbitrary Wiki content inside a &amp;lt;th&amp;gt; element (&amp;#039;&amp;#039;since 0.12&amp;#039;&amp;#039;) &lt;br /&gt;
 &amp;lt;tt&amp;gt;#tr&amp;lt;/tt&amp;gt; :: Can optionally be used for wrapping &amp;lt;tt&amp;gt;#td&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;#th&amp;lt;/tt&amp;gt; blocks,&lt;br /&gt;
       either for specifying row attributes of better visual grouping&lt;br /&gt;
       (&amp;#039;&amp;#039;since 0.12&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
See WikiHtml for example usage and more details about these processors.&lt;br /&gt;
&lt;br /&gt;
==== Other Markups ====&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;tt&amp;gt;#rst&amp;lt;/tt&amp;gt; :: Trac support for Restructured Text. See WikiRestructuredText.&lt;br /&gt;
 &amp;lt;tt&amp;gt;#textile&amp;lt;/tt&amp;gt; :: Supported if [http://cheeseshop.python.org/pypi/textile Textile] &lt;br /&gt;
                is installed. &lt;br /&gt;
                See [http://www.textism.com/tools/textile/ a Textile reference].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Code Highlighting Support ====&lt;br /&gt;
&lt;br /&gt;
Trac includes processors to provide inline syntax highlighting:&lt;br /&gt;
 &amp;lt;tt&amp;gt;#c&amp;lt;/tt&amp;gt; (C), &amp;lt;tt&amp;gt;#cpp&amp;lt;/tt&amp;gt; (C++), &amp;lt;tt&amp;gt;#python&amp;lt;/tt&amp;gt; (Python), &amp;lt;tt&amp;gt;#perl&amp;lt;/tt&amp;gt; (Perl), &lt;br /&gt;
 &amp;lt;tt&amp;gt;#ruby&amp;lt;/tt&amp;gt; (Ruby), &amp;lt;tt&amp;gt;#php&amp;lt;/tt&amp;gt; (PHP), &amp;lt;tt&amp;gt;#asp&amp;lt;/tt&amp;gt; (ASP), &amp;lt;tt&amp;gt;#java&amp;lt;/tt&amp;gt; (Java), &lt;br /&gt;
 &amp;lt;tt&amp;gt;#js&amp;lt;/tt&amp;gt; (Javascript), &amp;lt;tt&amp;gt;#sql (SQL)&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;#xml&amp;lt;/tt&amp;gt; (XML or HTML),&lt;br /&gt;
 &amp;lt;tt&amp;gt;#sh&amp;lt;/tt&amp;gt; (Bourne/Bash shell), etc.&lt;br /&gt;
&lt;br /&gt;
Trac relies on external software packages for syntax coloring,&lt;br /&gt;
like [http://pygments.org Pygments]. &lt;br /&gt;
&lt;br /&gt;
See TracSyntaxColoring for information about which languages&lt;br /&gt;
are supported and how to enable support for more languages.&lt;br /&gt;
&lt;br /&gt;
Note also that by using the MIME type as processor, it is possible to syntax-highlight the same languages that are supported when browsing source code. For example, you can write:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#text/html&lt;br /&gt;
&amp;lt;h1&amp;gt;text&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The result will be syntax highlighted HTML code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#text/html&lt;br /&gt;
&amp;lt;h1&amp;gt;text&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The same is valid for all other [TracSyntaxColoring#SyntaxColoringSupport mime types supported].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more processor macros developed and/or contributed by users, visit: &lt;br /&gt;
*[trac:ProcessorBazaar]&lt;br /&gt;
*[trac:MacroBazaar]&lt;br /&gt;
*[th:WikiStart Trac Hacks] community site&lt;br /&gt;
&lt;br /&gt;
Developing processors is no different from Wiki macros. &lt;br /&gt;
In fact they work the same way, only the usage syntax differs. &lt;br /&gt;
See WikiMacros#DevelopingCustomMacros for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
See also: WikiMacros, WikiHtml, WikiRestructuredText, TracSyntaxColoring, WikiFormatting, TracGuide&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{TracNotice|{{PAGENAME}}}}&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
</feed>