mirror of
https://github.com/erusev/parsedown.git
synced 2025-09-04 12:15:27 +02:00
Compare commits
109 Commits
0.8.2
...
1.0.0-rc.2
Author | SHA1 | Date | |
---|---|---|---|
|
9fa415bcc5 | ||
|
37416b5f07 | ||
|
83d3e3dbbf | ||
|
307a987cb6 | ||
|
eab3cbf255 | ||
|
cf7f32f891 | ||
|
4150e00dc4 | ||
|
22affa124b | ||
|
5e95242318 | ||
|
504991a04e | ||
|
3d84201d74 | ||
|
4f027386b1 | ||
|
cd1c030362 | ||
|
6081954185 | ||
|
d841003c65 | ||
|
f310bbe13f | ||
|
2595f366d9 | ||
|
e5dc563804 | ||
|
e0901ee9c7 | ||
|
5316a2e0dd | ||
|
5be4491943 | ||
|
4e670129c8 | ||
|
159c3cede6 | ||
|
c10bde0174 | ||
|
24d872383c | ||
|
7ef45894a7 | ||
|
9bf64d2e31 | ||
|
886c620440 | ||
|
e156c418d6 | ||
|
1734f6fc85 | ||
|
d8650cd77c | ||
|
3fa9d62572 | ||
|
4f851205a7 | ||
|
0985c2ef29 | ||
|
9fd9262f16 | ||
|
a6756fd4fa | ||
|
1243fcf3e0 | ||
|
1e8d917f7a | ||
|
324eaf7c15 | ||
|
f972f7f15d | ||
|
688b761d32 | ||
|
b8bd12f565 | ||
|
7a20a9fb60 | ||
|
6fed312d3c | ||
|
d0784d1006 | ||
|
446fead459 | ||
|
ccbdfabaff | ||
|
bc30ad8e30 | ||
|
d9f325903a | ||
|
d29ff18299 | ||
|
95e9878fb0 | ||
|
611aed179d | ||
|
abb88d59fa | ||
|
14ab6d46fe | ||
|
ebfdace4c6 | ||
|
ba7f377290 | ||
|
548a6f7945 | ||
|
7a4d3c0f18 | ||
|
7f68a3a2e1 | ||
|
7193e634b2 | ||
|
45c01d4673 | ||
|
59907ff757 | ||
|
6e93b68692 | ||
|
5a525be070 | ||
|
f5f1706e58 | ||
|
b257d0ecaa | ||
|
a7510b97e7 | ||
|
e9098aebfa | ||
|
72f4a375ef | ||
|
07b738b1c8 | ||
|
f7181ee9b6 | ||
|
0ce6caf81e | ||
|
d3c975d4d8 | ||
|
55f360a591 | ||
|
215ff63594 | ||
|
3d581dcaa9 | ||
|
bbce965a9a | ||
|
6069fdac81 | ||
|
0f090e1a6e | ||
|
618ab4e156 | ||
|
7661b7c8f9 | ||
|
8f6495ce86 | ||
|
250ba80356 | ||
|
3ac9b96e57 | ||
|
b764deca66 | ||
|
65ef541fda | ||
|
c7b6d0235d | ||
|
1a2124daae | ||
|
bf6c9a6db2 | ||
|
0494c6b274 | ||
|
3e0c010c1f | ||
|
3a5eecc23d | ||
|
c8c5ae9df8 | ||
|
843786c07c | ||
|
0c61f71e3f | ||
|
01a147c574 | ||
|
f0fbdaa6ca | ||
|
e20c0a29bd | ||
|
712dd23d30 | ||
|
68f2871996 | ||
|
17e7e33847 | ||
|
7cb9646d98 | ||
|
325bdd9ff6 | ||
|
2a0700abda | ||
|
4e83d79d76 | ||
|
354842fd6e | ||
|
2b73e94c6c | ||
|
0182812d6c | ||
|
f5dd3455f9 |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,3 +0,0 @@
|
||||
.DS_Store
|
||||
.idea
|
||||
nbproject
|
@@ -1,8 +1,10 @@
|
||||
language: php
|
||||
|
||||
php:
|
||||
- 5.6
|
||||
- 5.5
|
||||
- 5.4
|
||||
- 5.3
|
||||
- 5.2
|
||||
- hhvm
|
||||
|
2206
Parsedown.php
2206
Parsedown.php
File diff suppressed because it is too large
Load Diff
23
README.md
23
README.md
@@ -2,19 +2,16 @@
|
||||
|
||||
Better [Markdown](http://en.wikipedia.org/wiki/Markdown) parser for PHP.
|
||||
|
||||
***
|
||||
|
||||
[ [demo](http://parsedown.org/demo) ] [ [tests](http://parsedown.org/tests/) ]
|
||||
|
||||
***
|
||||
- [Demo](http://parsedown.org/demo)
|
||||
- [Tests](http://parsedown.org/tests/)
|
||||
|
||||
### Features
|
||||
|
||||
* [fast](http://parsedown.org/speed)
|
||||
* [consistent](http://parsedown.org/consistency)
|
||||
* [Fast](http://parsedown.org/speed)
|
||||
* [Consistent](http://parsedown.org/consistency)
|
||||
* [GitHub Flavored](https://help.github.com/articles/github-flavored-markdown)
|
||||
* friendly to international input
|
||||
* [tested](https://travis-ci.org/erusev/parsedown) in PHP 5.2, 5.3, 5.4, 5.5 and [hhvm](http://www.hhvm.com/)
|
||||
* [Tested](https://travis-ci.org/erusev/parsedown) in PHP 5.2, 5.3, 5.4, 5.5, 5.6 and [hhvm](http://www.hhvm.com/)
|
||||
* Extensible
|
||||
|
||||
### Installation
|
||||
|
||||
@@ -22,10 +19,8 @@ Include `Parsedown.php` or install [the composer package](https://packagist.org/
|
||||
|
||||
### Example
|
||||
|
||||
```php
|
||||
$text = 'Hello _Parsedown_!';
|
||||
``` php
|
||||
$Parsedown = new Parsedown();
|
||||
|
||||
$result = Parsedown::instance()->parse($text);
|
||||
|
||||
echo $result; # prints: <p>Hello <em>Parsedown</em>!</p>
|
||||
echo $Parsedown->text('Hello _Parsedown_!'); # prints: <p>Hello <em>Parsedown</em>!</p>
|
||||
```
|
||||
|
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<phpunit colors="true">
|
||||
<phpunit bootstrap="test/bootstrap.php" colors="true">
|
||||
<testsuites>
|
||||
<testsuite>
|
||||
<file>tests/Test.php</file>
|
||||
<file>test/Test.php</file>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
</phpunit>
|
65
test/Test.php
Normal file
65
test/Test.php
Normal file
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
class Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function __construct($name = null, array $data = array(), $dataName = '')
|
||||
{
|
||||
$this->dataDir = dirname(__FILE__).'/data/';
|
||||
|
||||
parent::__construct($name, $data, $dataName);
|
||||
}
|
||||
|
||||
private $dataDir;
|
||||
|
||||
/**
|
||||
* @dataProvider data
|
||||
*/
|
||||
function test_($filename)
|
||||
{
|
||||
$markdown = file_get_contents($this->dataDir . $filename . '.md');
|
||||
|
||||
$expectedMarkup = file_get_contents($this->dataDir . $filename . '.html');
|
||||
|
||||
$expectedMarkup = str_replace("\r\n", "\n", $expectedMarkup);
|
||||
$expectedMarkup = str_replace("\r", "\n", $expectedMarkup);
|
||||
|
||||
$actualMarkup = Parsedown::instance()->text($markdown);
|
||||
|
||||
$this->assertEquals($expectedMarkup, $actualMarkup);
|
||||
}
|
||||
|
||||
function data()
|
||||
{
|
||||
$data = array();
|
||||
|
||||
$Folder = new DirectoryIterator($this->dataDir);
|
||||
|
||||
foreach ($Folder as $File)
|
||||
{
|
||||
/** @var $File DirectoryIterator */
|
||||
|
||||
if ( ! $File->isFile())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$filename = $File->getFilename();
|
||||
|
||||
$extension = pathinfo($filename, PATHINFO_EXTENSION);
|
||||
|
||||
if ($extension !== 'md')
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$basename = $File->getBasename('.md');
|
||||
|
||||
if (file_exists($this->dataDir . $basename . '.html'))
|
||||
{
|
||||
$data []= array($basename);
|
||||
}
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
3
test/bootstrap.php
Normal file
3
test/bootstrap.php
Normal file
@@ -0,0 +1,3 @@
|
||||
<?php
|
||||
|
||||
include 'Parsedown.php';
|
18
test/data/aesthetic_table.html
Normal file
18
test/data/aesthetic_table.html
Normal file
@@ -0,0 +1,18 @@
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>header 1</th>
|
||||
<th>header 2</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>cell 1.1</td>
|
||||
<td>cell 1.2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>cell 2.1</td>
|
||||
<td>cell 2.2</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
4
test/data/aesthetic_table.md
Normal file
4
test/data/aesthetic_table.md
Normal file
@@ -0,0 +1,4 @@
|
||||
| header 1 | header 2 |
|
||||
| -------- | -------- |
|
||||
| cell 1.1 | cell 1.2 |
|
||||
| cell 2.1 | cell 2.2 |
|
21
test/data/aligned_table.html
Normal file
21
test/data/aligned_table.html
Normal file
@@ -0,0 +1,21 @@
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th align="left">header 1</th>
|
||||
<th align="center">header 2</th>
|
||||
<th align="right">header 2</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="left">cell 1.1</td>
|
||||
<td align="center">cell 1.2</td>
|
||||
<td align="right">cell 1.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">cell 2.1</td>
|
||||
<td align="center">cell 2.2</td>
|
||||
<td align="right">cell 2.3</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
4
test/data/aligned_table.md
Normal file
4
test/data/aligned_table.md
Normal file
@@ -0,0 +1,4 @@
|
||||
| header 1 | header 2 | header 2 |
|
||||
| :------- | :------: | -------: |
|
||||
| cell 1.1 | cell 1.2 | cell 1.3 |
|
||||
| cell 2.1 | cell 2.2 | cell 2.3 |
|
10
test/data/code_block.md
Normal file
10
test/data/code_block.md
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
$message = 'Hello World!';
|
||||
echo $message;
|
||||
|
||||
---
|
||||
|
||||
> not a quote
|
||||
- not a list item
|
||||
[not a reference]: http://foo.com
|
6
test/data/code_span.html
Normal file
6
test/data/code_span.html
Normal file
@@ -0,0 +1,6 @@
|
||||
<p>a <code>code span</code></p>
|
||||
<p><code>this is also a codespan</code> trailing text</p>
|
||||
<p><code>and look at this one!</code></p>
|
||||
<p>single backtick in a code span: <code>`</code></p>
|
||||
<p>backtick-delimited string in a code span: <code>`foo`</code></p>
|
||||
<p><code>sth `` sth</code></p>
|
11
test/data/code_span.md
Normal file
11
test/data/code_span.md
Normal file
@@ -0,0 +1,11 @@
|
||||
a `code span`
|
||||
|
||||
`this is also a codespan` trailing text
|
||||
|
||||
`and look at this one!`
|
||||
|
||||
single backtick in a code span: `` ` ``
|
||||
|
||||
backtick-delimited string in a code span: `` `foo` ``
|
||||
|
||||
`sth `` sth`
|
12
test/data/deeply_nested_list.html
Normal file
12
test/data/deeply_nested_list.html
Normal file
@@ -0,0 +1,12 @@
|
||||
<ul>
|
||||
<li>li
|
||||
<ul>
|
||||
<li>li
|
||||
<ul>
|
||||
<li>li</li>
|
||||
<li>li</li>
|
||||
</ul></li>
|
||||
<li>li</li>
|
||||
</ul></li>
|
||||
<li>li</li>
|
||||
</ul>
|
6
test/data/deeply_nested_list.md
Normal file
6
test/data/deeply_nested_list.md
Normal file
@@ -0,0 +1,6 @@
|
||||
- li
|
||||
- li
|
||||
- li
|
||||
- li
|
||||
- li
|
||||
- li
|
1
test/data/email.html
Normal file
1
test/data/email.html
Normal file
@@ -0,0 +1 @@
|
||||
<p>my email is <a href="mailto:me@example.com">me@example.com</a></p>
|
1
test/data/email.md
Normal file
1
test/data/email.md
Normal file
@@ -0,0 +1 @@
|
||||
my email is <me@example.com>
|
1
test/data/html_entity.html
Normal file
1
test/data/html_entity.html
Normal file
@@ -0,0 +1 @@
|
||||
<p>& © {</p>
|
1
test/data/html_entity.md
Normal file
1
test/data/html_entity.md
Normal file
@@ -0,0 +1 @@
|
||||
& © {
|
28
test/data/html_simple.html
Normal file
28
test/data/html_simple.html
Normal file
@@ -0,0 +1,28 @@
|
||||
<p>Headings:</p>
|
||||
<h2 id="overview">Overview</h2>
|
||||
<p>blah</p>
|
||||
<H2 id="block">Block Elements</H2>
|
||||
<p>blah</p>
|
||||
<h3 id="span">
|
||||
Span Elements
|
||||
</h3>
|
||||
<p>blah</p>
|
||||
<p>Hr's:</p>
|
||||
<hr>
|
||||
<p>blah</p>
|
||||
<hr/>
|
||||
<p>blah</p>
|
||||
<hr />
|
||||
<p>blah</p>
|
||||
<hr>
|
||||
<p>blah</p>
|
||||
<hr/>
|
||||
<p>blah</p>
|
||||
<hr />
|
||||
<p>blah</p>
|
||||
<hr class="foo" id="bar" />
|
||||
<p>blah</p>
|
||||
<hr class="foo" id="bar"/>
|
||||
<p>blah</p>
|
||||
<hr class="foo" id="bar" >
|
||||
<p>blah</p>
|
39
test/data/html_simple.md
Normal file
39
test/data/html_simple.md
Normal file
@@ -0,0 +1,39 @@
|
||||
Headings:
|
||||
|
||||
<h2 id="overview">Overview</h2>
|
||||
blah
|
||||
<H2 id="block">Block Elements</H2>
|
||||
blah
|
||||
<h3 id="span">
|
||||
Span Elements
|
||||
</h3>
|
||||
blah
|
||||
|
||||
Hr's:
|
||||
|
||||
<hr>
|
||||
blah
|
||||
|
||||
<hr/>
|
||||
blah
|
||||
|
||||
<hr />
|
||||
blah
|
||||
|
||||
<hr>
|
||||
blah
|
||||
|
||||
<hr/>
|
||||
blah
|
||||
|
||||
<hr />
|
||||
blah
|
||||
|
||||
<hr class="foo" id="bar" />
|
||||
blah
|
||||
|
||||
<hr class="foo" id="bar"/>
|
||||
blah
|
||||
|
||||
<hr class="foo" id="bar" >
|
||||
blah
|
1
test/data/image_title.html
Normal file
1
test/data/image_title.html
Normal file
@@ -0,0 +1 @@
|
||||
<p><img alt="alt" src="/md.png" title="title" /></p>
|
1
test/data/image_title.md
Normal file
1
test/data/image_title.md
Normal file
@@ -0,0 +1 @@
|
||||

|
2
test/data/reference_title.html
Normal file
2
test/data/reference_title.html
Normal file
@@ -0,0 +1,2 @@
|
||||
<p><a href="http://example.com" title="example title">double quotes</a> and <a href="http://example.com" title="example title">single quotes</a> and <a href="http://example.com" title="example title">parentheses</a></p>
|
||||
<p>[invalid title]: <a href="http://example.com">http://example.com</a> example title</p>
|
6
test/data/reference_title.md
Normal file
6
test/data/reference_title.md
Normal file
@@ -0,0 +1,6 @@
|
||||
[double quotes] and [single quotes] and [parentheses]
|
||||
|
||||
[double quotes]: http://example.com "example title"
|
||||
[single quotes]: http://example.com 'example title'
|
||||
[parentheses]: http://example.com (example title)
|
||||
[invalid title]: http://example.com example title
|
37
test/data/simple_table.html
Normal file
37
test/data/simple_table.html
Normal file
@@ -0,0 +1,37 @@
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>header 1</th>
|
||||
<th>header 2</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>cell 1.1</td>
|
||||
<td>cell 1.2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>cell 2.1</td>
|
||||
<td>cell 2.2</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<hr />
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th align="left">header 1</th>
|
||||
<th>header 2</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="left">cell 1.1</td>
|
||||
<td>cell 1.2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left">cell 2.1</td>
|
||||
<td>cell 2.2</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
11
test/data/simple_table.md
Normal file
11
test/data/simple_table.md
Normal file
@@ -0,0 +1,11 @@
|
||||
header 1 | header 2
|
||||
-------- | --------
|
||||
cell 1.1 | cell 1.2
|
||||
cell 2.1 | cell 2.2
|
||||
|
||||
---
|
||||
|
||||
header 1 | header 2
|
||||
:------- | --------
|
||||
cell 1.1 | cell 1.2
|
||||
cell 2.1 | cell 2.2
|
7
test/data/sparse_dense_list.html
Normal file
7
test/data/sparse_dense_list.html
Normal file
@@ -0,0 +1,7 @@
|
||||
<ul>
|
||||
<li>
|
||||
<p>li</p>
|
||||
</li>
|
||||
<li>li</li>
|
||||
<li>li</li>
|
||||
</ul>
|
4
test/data/sparse_dense_list.md
Normal file
4
test/data/sparse_dense_list.md
Normal file
@@ -0,0 +1,4 @@
|
||||
- li
|
||||
|
||||
- li
|
||||
- li
|
@@ -1,5 +1,4 @@
|
||||
<p>AT&T has an ampersand in their name</p>
|
||||
<p>AT&T is another way to write it</p>
|
||||
<p>this & that</p>
|
||||
<p>4 < 5 and 6 > 5</p>
|
||||
<p><a href="http://example.com/autolink?a=1&b=2">http://example.com/autolink?a=1&b=2</a></p>
|
@@ -1,7 +1,5 @@
|
||||
AT&T has an ampersand in their name
|
||||
|
||||
AT&T is another way to write it
|
||||
|
||||
this & that
|
||||
|
||||
4 < 5 and 6 > 5
|
18
test/data/table_inline_markdown.html
Normal file
18
test/data/table_inline_markdown.html
Normal file
@@ -0,0 +1,18 @@
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th><em>header</em> 1</th>
|
||||
<th>header 2</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><em>cell</em> 1.1</td>
|
||||
<td><del>cell</del> 1.2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>cell</code> 2.1</td>
|
||||
<td>cell 2.2</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
4
test/data/table_inline_markdown.md
Normal file
4
test/data/table_inline_markdown.md
Normal file
@@ -0,0 +1,4 @@
|
||||
| _header_ 1 | header 2 |
|
||||
| ------------ | ------------ |
|
||||
| _cell_ 1.1 | ~~cell~~ 1.2 |
|
||||
| `cell` 2.1 | cell 2.2 |
|
@@ -3,5 +3,6 @@
|
||||
<p>[one][404] with no definition</p>
|
||||
<p><a href="http://example.com">multiline
|
||||
one</a> defined on 2 lines</p>
|
||||
<p><a href="http://example.com">one</a> with an upper case label</p>
|
||||
<p><a href="http://example.com">one</a> with a mixed case label and an upper case definition</p>
|
||||
<p><a href="http://example.com">one</a> with the a label on the next line</p>
|
||||
<p><a href="http://example.com"><code>link</code></a></p>
|
@@ -11,8 +11,11 @@
|
||||
[multiline
|
||||
one][website] defined on 2 lines
|
||||
|
||||
[one][label] with an upper case label
|
||||
[one][Label] with a mixed case label and an upper case definition
|
||||
|
||||
[LABEL]: http://example.com
|
||||
|
||||
[one]
|
||||
[1] with the a label on the next line
|
||||
|
||||
[`link`][website]
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user