book: Create a structured PDF document with headings, chapters, etc.
webpage: Specifies that the HTML sources are unstructured (plain web pages.) A page break is inserted between each file or URL in the output.
continuous: Specifies that the HTML sources are unstructured (plain web pages.) No page breaks are inserted between each file or URL in the output.
Title of the document for the front page.
Extract the first heading of the document and use it as title. If checked the title field has no effect.
The title image or HTML page. These file has to be an attachments!
Specify document version to be displayed on the title page.
Intellectual property owner of this document.
Copyright notice for this document.
Information about who and when modified the document are applied at the end.


Specifies the output format.
Grayscale document  Title page
Compression :   JPEG big images 


User defined page size 
Choose one of the predefined standard sizes or select user defined.
Specifies the page size using a standard name or in points (no suffix or ##x##pt), inches (##x##in), centimeters (##x##cm), or millimeters (##x##mm).
Set the target browser width in pixels (400-1200). This determines the page scaling of images.
   2-Sided   Landscape
Specifies the margin size using points (no suffix or ##x##pt), inches (##x##in), centimeters (##x##cm), or millimeters (##x##mm). Keep empty for default value.
Sets the page header to use on body pages.
Sets the page footer to use on body pages.


Sets the number of levels in the table-of-contents. Empty for unlimited levels.
   Numbered headings Check to number all of the headings in the document.
Sets the title for the table-of-contents. Empty for default title.
Sets the page header to use on table-of-contents pages.
Sets the page footer to use on table-of-contents pages.


Enter the HTML color for the body (background).
Enter the image file for the body (background). These file has to be an attachments!
Enter the HTML color for the text.
Sets the color of links.
Enables generation of links in PDF files.


Set the default size of text.
Set the spacing between lines of text.
Choose the default typeface (font) of text.
Choose the default typeface (font) of headings.
Set the size of header and footer text.
Choose the font for header and footer text.
Change the encoding of the text in document.
Check to embed font in the output file.


Controls the initial viewing mode for the document.
Document: Displays only the docuemnt pages.
Outline: Display the table-of-contents outline as well as the document pages.
Full-screen: Displays pages on the whole screen; this mode is used primarily for presentations.
Controls the initial layout of document pages on the screen.
Single: Displays a single page at a time.
One column: Displays a single column of pages at a time.
Two column left/right: Display two columns of pages at a time; the first page is displayed in the left or right column as selected.
Choose the initial page that will be shown.


Check to number all of the headings in the document.
 Print   Modify
 Copy   Annotate
Specifies the document permissions.
Specifies the user password to restrict viewing permissions on this PDF document. Empty for no encryption.
Specifies the owner password to control who can change document permissions etc. If this field is left blank, a random 32-character password is generated so that no one can change the document.


Specify language to use for date and time format.
Shrink code blocks on page.
Show line numbers for code blocks.
Make spaces visable by dots (·) instead of white spaces.
Make line breaks visable by a extra character (¶) at the end.
Enable this feature if you searching for problems or intent to report a bug report


Version 2.4.2 (MoinMoin 1.9.7)

MoinMoin - Generate PDF document using HTMLDOC

This action script generate PDF documents from a Wiki site using
the HTMLDOC ( software packages which has
to be preinstalled first.

Copy this script in your's MoinMoin action script plugin directory.

Thanks goes to Pascal Bauermeister who initiated the implementaion.
Lot of things changes since then but the idear using HTMLDOC is the
main concept of this implementation.

Please visit the homepage for further informations:

@copyright: (C) 2006 Pascal Bauermeister
@copyright: (C) 2006-2010 Raphael Bossek <>
@license: GNU GPL, see COPYING for details


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