XMarkDown was originally concieved as a way of demonstrating the use of OOP for a task that is often touted as the realm of procedural code: parsing a linear document. What could be more procedural than that?
This is an example of how OOP can be used to solve even the most seemingly "procedural" of problems.
This is currently a work in progress but is most of the way towards becomming a full markdown parser.
Parse MarkDown into a DomDocument object rather than focussing on string manipulation
Don't rely on regular expressions