Hi, I'm currently writing my own wiki, partly to learn about distributed version control systems. As part of that, I'm implementing a creole parser.
Its implemented in PHP5.1+, and uses the DOM extension to build the XHTML/HTML of the document.
2007-02-23#
Updated my implementation at http://homepage.ntlworld.com/jared.williams/creole/Creole.zip
- Now parses BoldAndListsAmbiguity correctly.
- Inline markup (excluding links) within links is now implemented {{[[link|**bold**\\//italics//\\{{{mono}}}]] and [[link|{{http://www.example.org/image.png|image link}}]] .
- Few other bug fixes.
- Table header cells added.
- Headers now define document structure.
=Main Heading= ==1 ===1.1 ==2 ===2.1 ====2.1.1 =====2.1.1.1 ======2.1.1.1.1 =====2.1.1.2 ======2.1.1.2.1 ===2.2 ==3
generates
<div>
<div class="section">
<h1>Main Heading</h1>
<div class="section">
<h2>1</h2>
<div class="section">
<h3>1.1</h3>
</div>
</div>
<div class="section">
<h2>2</h2>
<div class="section">
<h3>2.1</h3>
<div class="section">
<h4>2.1.1</h4>
<div class="section">
<h5>2.1.1.1</h5>
<div class="section">
<h6>2.1.1.1.1</h6>
</div>
</div>
<div class="section">
<h5>2.1.1.2</h5>
<div class="section">
<h6>2.1.1.2.1</h6>
</div>
</div>
</div>
</div>
<div class="section">
<h3>2.2</h3>
</div>
</div>
<div class="section">
<h2>3</h2>
</div>
</div>
</div>
2007-02-05#
My current implementation, testsuite, and testsuite output is available at http://homepage.ntlworld.com/jared.williams/creole/Creole.zip
.
It should be, if not close to an 0.4 implementation. It guarantees valid XML output (unless a bug in libxml) and should always output valid XHTML. Has a few specific engine quirks, like using <object> for local inclusions, instead of <img>, and as such output isn't intended for displaying directly to a browser.
Problems, comments, test cases all appreciated.

