Revision 19 - 2009-05-11 at 12:18:11

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 powerful, and 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 Textile can be turned off all together at any point with == == wrapped around the content. 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":http://example.com
  • Markdown: [Link text](http://example.com)

Quoting the text of the link is easier to remember with textile. While markdown requires one to decide between bracket types for the text and the URL - Advantage Textile

Emphasis

  • 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.

Auto Hyperlinking

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

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

Tables

  • 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.
  • Footnotes.
    • Textile's footnoting is simpler [1] and fn1. May foonote
    • Markdown's is more semantic and adds a link back [^my_foot] [^my_foot]: A note about my foot

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

Wikilinks

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
Grouping
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. ↩

My tags:
 
Popular tags:
 
Powered by Catalyst