Apache Forrest WikiRenderer



Forrest's Wiki Support

Forrest now has partial support for documentation in Wiki format, thanks to the Chaperon parser. Wiki is a simple text format that can be learned in minutes. This page provides an overview of the syntax that Forrest supports, namely a subset of that used by the Cocoon Wiki.

Quick reference

----       = Make a horizontal ruler. Extra '-' is ignored.
\\         = force a line break, \\\=force line break and clear.

[link]     = creates a hyperlink to an internal WikiPage called 'Link'.
[this is also a link] = creates a hyperlink to an internal WikiPage called
[click here|link] = creates a hyperlink to an internal WikiPage called
'Link', but displays the text 'click here' to the
user instead of 'Link'.
[1]        = Makes a reference to a footnote numbered 1.
[#1]       = Marks the footnote number 1.
[[link]    = creates text '[link]'.

!heading   = small heading with text 'heading'
!!heading  = medium heading with text 'heading'
!!!heading = large heading with text 'heading'

''text''   = prints 'text' in italic.
__text__   = prints 'text' in bold.
{{text}}   = prints 'text' in monospaced font.

* text     = makes a bulleted list item with 'text'
# text     = makes a numbered list item with 'text'
;term:ex   = makes a definition for 'term' with the explanation 'ex'

Writing text

You don't need to know anything about the Wiki text formatting rules to use Wiki. Just write normal text, and then use an empty line to mark a paragraph. It's just like writing an email.


The link can also be a direct URL starting with http:, ftp:, mailto:, https:, or news:, in which case the link points to an external entity. For example, to point at the java.sun.com home page, use [[http://java.sun.com], which becomes http://java.sun.com/or [[Java home page|http://java.sun.com], which becomes Java home page.

To add a new page you just create a link to it from somewhere else. After all, there isn't much point in having a page if you can't access it! You'll then see a small question mark after the page name when you return to that page. Then click on it and you have created a new page!

It's allowed to use almost any kind of characters inside a [[WikiName], as long as they are letters or numbers.

Note also that this Wiki can be configured to support standard CamelCase linking (if it's supported, the word CamelCase should be a link). It's off by default, but if your friendly administrator has turned it on, then well, CamelCase all you want =).

Adding pictures

For security reasons uploading images is not permitted, but you can embed any image in the wiki code by putting the image available somewhere on the web in one of the allowed formats, and then just linking to it. For example, this is an inlined PNG image: http://www.ecyrd.com/~jalkanen/test.png.

If you specify a link text ([[this one here|http://example.com/example.png]) it becomes the ALT text for those who either can't or don't want to view images.

Bulleted lists

Use an asterisk (*) in the first column to make bulleted lists. Use more asterisks for deeper indentation. For example:

* One
* Two
* Three
** Three.One


  • One
  • Two
  • Three
  • Three.One

Numbered lists

Just like with bulleted lists, but use a hash (#) instead of the asterisk. Like this:

# One
# Two
# Three
## Three.One


  1. One
  2. Two
  3. Three
    1. Three.One

If you want to write the list item on multiple lines, just add one or more spaces on the next line and the line will be automatically added to the previous item. If this sounds complicated, edit this page for an example, below.

  • This is a single-line item.
  • This is actually a multi-line item.

We continue the second sentence on a line on a line of its own. We might as well do a third line while we're at it... Notice, however, as all these sentences get put inside a single item!

  • The third line is again a single-line item for your convinience.

Definition lists and comments

A simple way to make definition lists is to use the ';:' -construct:

;Construct:Something you use to do something with

Another nice use for the ';:' is that you can use it to comment shortly on other people's text, by having an empty 'term' in the definition, like this:

;:''Comment here.''

Which would be seen as ;:Comment here.

Text effects

You may use boldtext or italictext, by using two underscores (_) and two single quotes ('), respectively. If you're on a Windows computer, make sure that you are using the correct quote sign, as there is one that looks the same, but really isn't.

Preformatted text

If you want to add preformatted text (like code) just use three consecutive braces ({) to open a block, and three consecutive braces (}) to close a block. Edit this page for an example.


You can do simple tables by using using pipe signs ('|'). Use double pipe signs to start the heading of a table, and single pipe signs to then write the rows of the table. End with a line that is not a table.

For example:

|| Heading 1 || Heading 2
| ''Gobble'' | Bar
| [[Main]     | [[SandBox]

gives you the following table. Note how you can use links also inside tables.

Heading 1 Heading 2
[[Main] [[SandBox]