<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Michel is awesome and so is PHP Markdown (Extra).<div><br></div><div>The only problem <i>I </i>&nbsp;know about is that certain, very long documents will fail completely.</div><div><br></div><div>IIRC, this was a side-effect of its PCRE parsing  a bug or &nbsp;limitation of the regex implementation in PHP.</div><div><br></div><div>Max, are you using a grammar, as has been discussed on this list recently, or regexes? That is, might your parser be susceptible to the same bug?</div><div><br></div><div>Alan Hogan</div><div><br><div><div>On Oct 26, 2011, at 3:04 PM, Max Tsepkov wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Hello, list.<br>My name is Max, I'm a web developer.<br><br>I found Markdown convention very useful, I use it everywhere nowadays.<br>Michel Fortin's markdown-php seems to be the only available PHP implementation.<br>And, judging by number of people using it, it works well :)<br><br>But there is many thing that's keep it from being perfect:<br><br> &nbsp;* &nbsp;One large file with functions not being sorted in a logical way.<br>It makes it hard to understand how it works.<br> &nbsp;* &nbsp;Despite the fact that it contains classes, it isn't coded<br>object-oriented. Which greatly affect, again, clarity and<br>re-usability.<br> &nbsp;* &nbsp;Script is coded in early ages of PHP, doesn't make use of its new<br>features and uses obsolete ones.<br> &nbsp;* &nbsp;It's written much like a Python program. PHP doesn't work that way.<br><br><br>To give Markdown in PHP a new look, I've designed a library, which I<br>named markdown-oo-php<br>oo-php stands for object-oriented php. It's designed to be easy to use<br>and extend.<br><br>There is two components Text and Filter.<br>Text is an entity user works with, it represents text being processed. E.g.:<br><br> &nbsp;&nbsp;&nbsp;echo new Markdown_Text($plaintext);<br><br>Filter is a superclass and set of specific filters which does actual parsing.<br>Each specific filter is an object which transforms a single markdown<br>element to xhtml.<br>Examples of filters are: Markdown_Filter_Hr,<br>Markdown_Filter_Linebreak, Markdown_Filter_ListBulleted.<br><br>When user wants to transform markdown these filters are running one by<br>one resulting to html.<br>By default, one more special filter is run. It will pass given text to<br>original Markdown.pl 1.0.1<br>This way we get parsed markdown even if some filters are not implemented yet.<br>This feature requires perl, of course. It can be disabled:<br><br> &nbsp;&nbsp;&nbsp;Markdown_Filter::useFallbackFilter(false);<br><br>Such design allows users to write their own filters, hook into the<br>process, write plugins etc.<br>We can compose any chain of filters resulting into different versions,<br>extra features and other goodies.<br><br>You can find source along with documentation at GitHub:<br><a href="https://github.com/garygolden/markdown-oo-php">https://github.com/garygolden/markdown-oo-php</a><br><br>You're most welcome to comment, contribute and, of course, spread the word.<br><br>cheers ;)<br><br>-- <br>Max Tsepkov (a.k.a. Gary Golden)<br>A freelancing web engineer<br>http://www.garygolden.me<br>_______________________________________________<br>Markdown-Discuss mailing list<br>Markdown-Discuss@six.pairlist.net<br>http://six.pairlist.net/mailman/listinfo/markdown-discuss<br></div></blockquote></div><br></div></body></html>