Extension:AlternateSyntaxParser

The AlternateSyntaxParser Extension provides the ability to use alternate syntax engines (such as Markdown and Textile) instead of the standard wikitext parser.

This can be done on a page-by-page basis, or by setting a site-wide default.


 * Project Homepage: AlternateSyntaxParser Extension - Jimbojw.com
 * Source Code: AlternateSyntaxParser.php
 * Licensing: AlternateSyntaxParser is released under The MIT License.

Installation
require_once('extensions/AlternateSyntaxParser/AlternateSyntaxParser.php'); $wgEnableParserCache = false;
 * 1) Create a folder in your $IP/extensions directory called AlternateSyntaxParser.
 * Note: $IP is your MediaWiki install dir.
 * 1) Download AlternateSyntaxParser, and be sure to rename the downloaded file to AlternateSyntaxParser.php.
 * 2) Drop this script in $IP/extensions/AlternateSyntaxParser/
 * 3) Enable the extension by adding this line to your LocalSettings.php:
 * 1) Download the required libraries for chosen alternate syntaxes as specified below
 * ''Note: If you don't download the libraries, the extension won't work!

Configuration (optional)

If you'd like to specify a site-wide default alternate syntax, set the $wgAlternateSyntaxParserLanguage global variable to the chosen language in your LocalSettings.php file. For example, to set Markdown as the site-wide default, you'd put: $wgAlternateSyntaxParserLanguage = 'markdown';

Markdown
To support Markdown syntax you must:
 * 1) Download Michel Fortin's PHP Markdown or PHP Markdown Extra library (either one):
 * http://www.michelf.com/projects/php-markdown/
 * 1) Extract the file 'markdown.php' from the zip archive.
 * 2) Drop markdown.php into $IP/extensions/AlternateSyntaxParser/

Textile
To support Textile syntax you must:
 * 1) Download Jim Riggs' TextilePHP library:
 * http://jimandlissa.com/project/textilephp
 * 1) Extract the file 'Textile.php' from the downloaded archive.
 * 2) Drop Textile.php into $IP/extensions/AlternateSyntaxParser/</tt>

Usage
To use an alternate syntax in a page, if you haven't set a site-wide default, put the following at the top of the page:


 * 1) MARKUP language

Where 'language' is the markup language - examples include 'markdown' and 'textile'.

Below that, add any desired page content in the markup language specified. That's it!

Developer Notes
The inspiration for this extension was born out of Simon Dorfman's work on Extension:MarkdownSyntax, which takes a different approach to rendering the content. AlternateSyntaxParser bypasses nearly all of the MediaWiki Parser's steps in order to preserve the alternate language's output, while MarkdownSyntax renders the markup according to Markdown rules prior to MediaWiki's wikitext parsing.

This means that MarkdownSyntax will still be able to use Category linking and template transclusion (among other wikitext features) while AlternateSyntaxParser will not. On the other hand, AlternateSyntaxParser does not suffer from syntactical conflicts such as header/section mapping (as described on the MarkdownSyntax extension page).

It is left as an exercise for the user to decide which method is more appropriate for their particular use case.

--Jimbojw 20:33, 3 June 2007 (UTC)