Revision 21 - 2009-05-11 at 12:35:50

Wiki Language Comparison

In MojoMojo, you can write wiki pages using HTML and one of two popular lightweight markup languages: Textile and Markdown. While you must currently choose between Textile and Markdown when creating your wiki, HTML is always available, for a few good reasons.

Textile and MultiMarkdown

Textile21 is an extension to Textile, adding extended blocks (blocks that can contain a newline). MultiMarkdown is an extension to Markdown, adding support for tables, footnotes, bibliography, automatic cross-references, glossaries, appendices, definition lists, math syntax, anchor and image attributes, and document metadata.

Syntax Comparison

Generally, Markdown is bit more cryptic but perhaps more powerful, while Textile is easier to read and use because it distinguishes markup more clearly. Textile is meant to be combined with HTML for more complex documents, or it can be turned off all together at any point with == == wrapped around the content. What some may view as a drawback to Textile is that certain markup such as headings require blank lines around them. In practice I have not found this be much of a limitation, and actually produces more legible source code. The basic differences between the two syntaxes are:

Head Levels

  • Textile: h1. h2. h3. h4. h5. h6.
  • Markdown: `# ## ### #### ##### ######

Markdown plain looks ugly here, but more importantly makes it difficult to read what section level your at as you go deeper. Advantage Textile.

Link Syntax

  • Textile: "Link text":
  • Markdown: [Link text](


  • Textile: *bold*, _italic_
  • Markdown: *italic* ('em'), **bold** ('strong')

Textile uses different indicators for bold and italic to easily distinguish. The underscore is quite commonly used for emphasis historically so has long standing semantic meaning.

Turning Off the Wiki Language

  • Textile can be turned off by placing == around whatever content you don't want to Textile
  • Markdown is automatically off in side of of blocks (like

Textile gives the user the flexibility to decide when the turn it off or on.

Auto Hyperlinking

  • Markdown provides a shorthand way to create a link with the url as the text. You enclose the URL in angle brackets: <>
  • Textile does not have a shortcut. One would do "":

Advantage Markdown

Definition Lists

  • Both Textile and MultiMarkdown have a syntax for definition lists but MojoMojo currently doesn't support the MultiMarkdown syntax.

Advantage Textile


  • Textile's footnoting is simpler [1] and fn1. My foonote
  • Markdown's is more semantic and adds a link back [^my_foot] [^my_foot]: A note about my foot

One disadvantage to markdown's footnoting is that a second reference to the same footnotes, duplicate the footnote in the display list.


  • pipe characters in text within table cells must be escaped as &#124; (backslash-escaping doesn't work in this case with MultiMarkdown). MultiMarkdown allows linebreaks in tables after the first row.

To switch MojoMojo to use Textile, go to the Edit Settings page.


Wikilinks are interpreted by MojoMojo separately and have the same syntax, regardless of the formatter being Textile or MultiMarkdown:

What you see MojoMojo Wikilinks Wikipedia
MojoMojo features MojoMojo [[/features]] MojoMojo [[features]]
MojoMojo editing cheatsheet MojoMojo [[/documentation/cheatsheet | editing cheatsheet]] MojoMojo [[cheatsheet | editing cheatsheet]]

Table headers and cell alignment

Example copied from the MultiMarkdown syntax guide:

Prototype table
First Header Second Header Third Header
Content Long Cell
Content Cell Cell
New section More Data
And more And more

The CSS doesn't currently match the one in the MultiMarkdown example. This is an easy fix; please consider submitting a patch to mojomojo.css.

One issue with Textile2 is that newlines break lists. It thus becomes impossible to render blockquotes or blocks of code in lists because the "bq." or "bc." block signature requires being surrounded by blank lines, and blank lines break lists:

# First,

bq. Avoid problems, and you'll never be the one who overcame them.
-- Richard Bach

# Second item, but will be numbered "1"

bq. There is no elevator to success. You have to take the stairs.

In order to achieve this one simple uses HTML instead of Textile, no big deal. Know when to use the right tool for the job. Textile's documentations specifically says it's meant as a lightweight markup, and when one needs more than what it offers then use HTML instead.

Markdown's documentation explicitly tells how to "put a blockquote within a list item".

  1. Textile2 may be referred to simply as Textile in the document. ↩

Revision by mateu, 2009-05-11
My tags:
Popular tags:
Powered by Catalyst