2013-11-16 11:51:01 +04:00
## Parsedown
2013-07-24 00:32:45 +04:00
2014-11-12 23:27:29 +03:00
Better Markdown Parser in PHP
2013-07-11 00:22:16 +04:00
2014-09-13 01:11:56 +04:00
[[ demo ]](http://parsedown.org/demo)
2013-11-23 17:58:58 +04:00
2013-12-04 00:49:50 +04:00
### Features
2013-11-23 17:58:58 +04:00
2014-04-17 12:22:49 +04:00
* [Fast ](http://parsedown.org/speed )
* [Consistent ](http://parsedown.org/consistency )
2014-11-12 04:36:17 +03:00
* [GitHub flavored ](https://help.github.com/articles/github-flavored-markdown )
2014-09-14 02:14:40 +04:00
* [Tested ](http://parsedown.org/tests/ ) in PHP 5.2, 5.3, 5.4, 5.5, 5.6 and [hhvm ](http://www.hhvm.com/ )
2014-04-17 12:22:49 +04:00
* Extensible
2014-05-14 21:07:52 +04:00
* [Markdown Extra extension ](https://github.com/erusev/parsedown-extra ) < sup > new</ sup >
2014-06-18 13:27:25 +04:00
* [JavaScript port ](https://github.com/hkdobrev/parsedown.js ) under development < sup > new</ sup >
2013-07-23 11:36:28 +04:00
2013-07-24 00:32:45 +04:00
### Installation
2014-11-12 04:37:36 +03:00
Include `Parsedown.php` or install [the composer package ](https://packagist.org/packages/erusev/parsedown ).
2013-07-24 00:32:45 +04:00
2013-07-24 00:54:32 +04:00
### Example
2013-07-24 00:32:45 +04:00
2014-02-21 04:49:59 +04:00
``` php
2014-05-17 18:13:00 +04:00
$Parsedown = new Parsedown();
2013-07-24 00:32:45 +04:00
2014-05-17 18:13:00 +04:00
echo $Parsedown->text('Hello _Parsedown_ !'); # prints: < p > Hello < em > Parsedown</ em > !</ p >
2013-11-13 03:38:29 +04:00
```
2014-05-16 02:15:21 +04:00
2014-09-13 00:52:06 +04:00
More examples in [the wiki ](https://github.com/erusev/parsedown/wiki/Usage ) and in [this video tutorial ](http://youtu.be/wYZBY8DEikI ).
2014-05-17 18:13:00 +04:00
2014-05-16 02:15:21 +04:00
### Questions
2014-05-16 02:27:54 +04:00
**How does Parsedown work?**< br / >
2015-01-05 15:18:36 +03:00
Parsedown tries to read Markdown like a human. First, it looks at the lines. It’ s interested in how the lines start. This helps it recognise blocks. It knows, for example, that if a line start with a `-` then it perhaps belong to a list. Once it recognises the blocks, it continues to the content. As it reads, it watches out for special characters. This helps it recognise inline elements (or inlines).
2014-05-16 02:15:21 +04:00
2014-05-16 02:27:54 +04:00
**Why doesn’ t Parsedown use namespaces?**< br / >
2014-09-13 01:11:56 +04:00
Using namespaces would mean dropping support for PHP 5.2. We believe that since Parsedown is a single class with an uncommon name, making this trade wouldn't be worth it.
2014-05-16 02:15:21 +04:00
2014-09-09 15:30:17 +04:00
**Is Parsedown compliant with CommonMark?**< br / >
We are [working on it ](https://github.com/erusev/parsedown/tree/commonmark ).
2014-05-16 02:27:54 +04:00
**Who uses Parsedown?**< br / >
2014-12-12 03:30:45 +03:00
[phpDocumentor ](http://www.phpdoc.org/ ), [October CMS ](http://octobercms.com/ ), [Bolt CMS ](http://bolt.cm/ ), [Kirby CMS ](http://getkirby.com/ ), [RaspberryPi.org ](http://www.raspberrypi.org/ ) and [more ](https://www.versioneye.com/php/erusev:parsedown/references ).
2014-12-10 18:19:05 +03:00
**How can I help?**< br / >
2014-12-11 15:34:58 +03:00
Use the project, tell friends about it and if you feel generous, [donate some money ](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=528P3NZQMP8N2 ).