The little story of PHP Markdown

This is a story I should have posted some months ago… but for some reasons it didn’t happen. Better later than never.

Markdown is a syntax allowing to write some text naturally so that it can easily be converted to HTML using a small program of the same name. Markdown can handle lists, headers, code, quotes, hyperlinks, and more by adding proper HTML tags needed for web publishing. What makes this format pretty is it’s great readability. It’s like reading an email.

At the end of the month of March this year, I took the challenge to convert the Markdown program — written in Perl — and to make a PHP version. Some hours later, I had a completely functional version of Markdown written entirely in PHP. At this moment, PHP Markdown was born.

At it’s start, PHP Markdown — as opposed to it’s Perl counterpart — was only a tool to convert some text. To use it you needed to call a function from another PHP program.

As time has passed, PHP Markdown became an easier-to-use plugin. It can now be found packaged with many web publishing software, like WordPress, BBlog, and AJ-Fork. PHP Markdown can also be used with TextPattern, Pivot, and every other software having support for the “other syntax”, thanks to the specially-made Textile compatibility mode. PHP Markdown also integrate nicely with any software using the Smarty template system.

Others have made some adaptations of PHP Markdown in a plugin for Expression Engine — a commercial publishing system — and a Drupal plugin appeared too. Moodle — a specialized software for online courses — also use PHP Markdown.

In all this time, PHP Markdown and the original John Gruber’s Markdown evolved up to version 1.0, available for about three months now. Bugs have been slashed and some other things have been added to the syntax. John also has won an award for it’s MovableType plugin.

The user base has also grown since the first version of Markdown and PHP Markdown. But this is not an easy thing to quantify. Search for it and you will see.

Another interesting thing happend in the last months: MovableType, since version 3.1, contains a dynamic template engine working with Smarty. Because of this, some websites now begin to use PHP Markdown instead of the original written in Perl.