The following 336 words could not be found in the dictionary of 1275 words (including 1275 LocalSpellingWords) and are highlighted below:
Additional   again   Alexander   allow   allows   Anchor   argc   argument   arguments   argv   ascii   asdfghj   at   bang   be   been   begin   beginning   behavior   Besides   Book   boolean   braces   but   By   by   Calendar   call   called   calls   can   certain   char   choose   class   client   clients   clipping   colorization   colorized   Colorizes   column   comes   comma   command   commas   concept   considered   console   const   construct   contain   contained   Contents   contents   Convert   correct   counted   cplusplus   creole   Creole   csvparser   curly   currently   Date   day   default   defaults   deprecated   Deprecation   derived   described   different   differently   disable   Display   display   displays   Doc   don   duplicate   each   earlier   easily   empty   enclosing   ending   enter   eventlog   Ex   exact   Example   example   examples   extended   failing   few   Firefox   fixed   Fixed   following   For   for   format   formats   Formatter   formatter   from   function   get   go   good   hashbang   headers   Hello   hello   hides   history   History   How   if   If   import   improved   included   increment   index   indices   information   init   installation   Instance   instead   Instruction   instruction   instructions   Instructions   int   Int   integer   Integer   interpreted   into   Java   java   javascript   jroes   Just   known   leave   like   line   linenumber   linenumbers   lines   log   long   main   make   many   match   Match   menu   method   mig3   modification   month   More   more   mostly   Mozilla   myself   name   names   nesting   Nir   normalize   Note   now   numbering   numbers   off   On   on   only   or   out   output   page   parse   parsed   Parser   parser   Parsers   parsers   part   pascal   patch   path   pi   please   pool8248   popular   Pos   possible   problems   process   processing   Processing   processor   produce   produces   program   public   purpose   Puts   python   Query   quit   quite   Random   raw   Re   re   Read   readable   referer   Reg   region   Regions   regions   related   remaining   remove   render   rendered   require   result   return   Revision   same   Schremmer   scripts   searchform   section   see   See   semicolon   semicolons   separated   separator   separators   sequence   serve   set   shell   should   simple   so   Soffer   solve   some   source   specifies   specify   starting   static   step   String   string   Structured   such   supply   supports   switchable   system   table   Table   tables   techniques   tell   tells   text   than   that   there   they   this   This   Thomas   those   though   through   Time   timed   titles   to   twistedmoin   understands   unicode   unique   Unix   unused   Use   use   used   user   Users   using   usually   util   utility   values   var   versions   very   Wal   Waldmann   want   Warning   ways   what   when   where   which   whitespace   whole   wikiutil   will   with   With   works   World   would   write   year  

Clear message
Italiano English
Locked History Actions


HelpContents > HelpForUsers > HelpOnEditing > HelpOnParsers


Besides the default MoinMoin wiki markup, different parsers allow the user to enter content into a page or a page section which is interpreted differently. A MoinMoin wiki mostly will use the default wiki parser, which is described on HelpOnFormatting.

How formats are applied

Parsers go through the contents of a page to create a sequence of formatter calls which in sequence create some readable output. MoinMoin will choose the parser for a page using 2 different techniques:

  1. FORMAT Processing Instruction

    A #FORMAT processing instruction can be used to tell MoinMoin which parser to use for the whole page content. By default this is the wiki parser. Example:

    #FORMAT cplusplus
    ... some C++ source ...
  2. Code Display Regions - see HelpOnFormatting

    With the use of code display regions, a parser can be applied to only a part of a page (this was a processor region in earlier versions of MoinMoin). You specify which parser to call by using a bang path-like construct in the first line. A bang path is a concept known from Unix command line scripts, where they serve the exact same purpose: the first line tells the shell what program to start to process the remaining lines of the script. For example, the code

    {{{#!CSV ,
    produces the table:
    a b c
    d e f

(!) Note that there are 2 ways to solve nesting problems related to }}}:

  • Use more than 3 curly braces for beginning / ending of the parser section (what you use must not be contained in the section you are enclosing). E.g.:
  • Use 3 curly braces + some unique string:

For more information on the possible markup, see HelpOnEditing.


ParserBase is a parser utility class used to produce colorized source displays. It is easily extended. The HTML Formatter will render such code displays with switchable linenumbers, if the browser supports DOM and JavaScript.

A ParserBase colorization parser understands the following arguments to a #FORMAT pi or a hashbang line. Just add those arguments after the name of the parser (#FORMAT python start=10 step=10 numbers=on or #!python numbers=off).

if line numbers should be added. defaults to 'on'. possible values: 'on', 'off' (no line numbers, but javascript to add them), 'disable' (no line numbers at all)
where to start with numbering. defaults to 1
increment to the linenumber. defaults to 1

MoinMoin comes with a few examples from which you can go on:


See HelpOnCreoleSyntax.


Colorizes python code. It is not derived from ParserBase, but it allows the same arguments as the ParserBase parsers.

   1 def hello():
   2     print "Hello World!"

def hello():
    print "Hello World!"

def hello():
    print "Hello World!"


   1 int main(int argc, char **argv) {
   2   return 0;
   3 }


   1 import java.util.Date;
   2 import java.util.Calendar;
   4 public class IntDate
   5 {
   6   public static Date getDate(String year, String month, String day)
   7     {
   8       // Date(int, int, int) has been deprecated, so use Calendar to
   9       // set the year, month, and day.
  10       Calendar c = Calendar.getInstance();
  11       // Convert each argument to int.
  12       c.set(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day));
  13       return c.getTime();
  14     }
  15 }


   1 function TRegEx.Match(const s:string):boolean;
   2 var
   3     l,i : integer;
   4 begin
   5     result := MatchPos(s,l,i);
   6 end;


Puts an IRC log into a table.

   1 (23:18) <     jroes> ah
   2 (23:21) -!- gpciceri [] has quit [Read error: 110 (Connection timed out)]
   3 (23:36) < ThomasWal> you could also write a parser or processor
   4 (23:38) <     jroes> i could?
   5 (23:38) <     jroes> would that require modification on the moin end though?
   6 (23:38) <     jroes> i cant change the wiki myself :x

The format parsed is the log format of IRSSI, a popular console IRC client, but it should also match the log format of quite some other IRC clients.


The CSV parser works on so-called comma separated values, though the comma is now usually and by default a semicolon. The first line is considered to contain column titles that are rendered in bold, so when you don't want table headers, leave the first line empty.

The bang path can contain "-index" arguments, each of which hides a certain column from the output; column indices are counted starting from 1.

Any non-whitespace argument that doesn't start with a - specifies the separator. This allows you to use e.g. commas (,) instead of semicolons (;). If you do not supply a separator, ; will be used.

  • /!\ The currently included CSV parser code is very simple.

Example tables (please see the raw text of this page for the markup used):

MoinMoin 1.3 - clipping of the patch history:

patch-366 make _normalize_text public method Nir Soffer
patch-367 fixed failing test wikiutil: good system page names Nir Soffer
patch-368 Fixed DeprecationWarning in and an unused import in Alexander Schremmer
patch-369 remove duplicate code in formatter.base Thomas Waldmann
patch-370 fixed long int in mig3 Thomas Waldmann
patch-371 fixed unicode error on eventlog Nir Soffer
patch-372 fixed util.web.makeQueryString and Page.url Nir Soffer
patch-373 fixed again non ascii http_referer Nir Soffer
patch-374 supports different separators now Alexander Schremmer
patch-375 improved searchform behavior on Mozilla/Firefox Nir Soffer
patch-376 More correct script for actions menu init Nir Soffer

MoinMoin Version History:

Version Date
0.11 2002-03-11
0.10 2001-10-28
0.9 2001-05-07
0.8 2001-01-23
0.7 2000-12-06
0.6 2000-12-04
0.5 2000-11-17
0.4 2000-11-01
0.3 2000-10-25
0.2 2000-08-26
0.1 2000-07-29


See /ReStructuredText


See HelpOnXmlPages.

Additional Parsers

For many more parsers and installation instructions, see ParserMarket