mirror of
https://github.com/erusev/parsedown.git
synced 2023-08-10 21:13:06 +03:00
Compare commits
131 Commits
Author | SHA1 | Date | |
---|---|---|---|
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 | |||
1017f22cdd | |||
88854955d6 | |||
654dd74074 | |||
fee5b71998 | |||
149b687ee7 | |||
98b17e3354 | |||
da966b83f1 | |||
b9ab495cb4 | |||
408cb5c21f | |||
5dd0e8cb7b | |||
5521afde31 | |||
4317add3a2 | |||
47d8a1382b | |||
fd42f2e864 | |||
c0b7155572 | |||
be366b63ea | |||
68484504ca | |||
4fecd91f7d | |||
9dae844a6e | |||
df6fe915c6 | |||
576b0ea761 | |||
0f027dc04b | |||
179862bd6e | |||
019a4af2af | |||
51a08fad85 | |||
7fb08f334a | |||
85ad014f74 | |||
22336a1bcc | |||
f713e380ee | |||
5b01915a63 | |||
18d112a614 | |||
1b9641ad03 | |||
8baf537c12 | |||
05823567bc | |||
b7029ab176 | |||
102a947c7a | |||
7bb70186c1 | |||
3225c66863 | |||
d6dc5ba25b | |||
f5451a9eff | |||
849a89b121 | |||
28064a63b3 | |||
800aac5b56 | |||
b15d40e8a3 | |||
ddc5b7e2dd | |||
5a563008aa | |||
b6f795962f | |||
cdb2646063 | |||
e3b8026e39 | |||
d96f668c42 | |||
96bf75bd91 | |||
67b51794d8 | |||
a9d6232705 | |||
b91629ad94 | |||
24d300ea5d | |||
d54712b989 | |||
6ef043ba7d | |||
fe27b70bdb | |||
18d3dbf4f6 | |||
4758f58f73 | |||
5fa3eb1b2f | |||
38300323a6 | |||
96609329b9 | |||
e497acb6dc | |||
30e436ec7d | |||
3972f18881 | |||
4fb12be60a | |||
f8b07611d3 | |||
21d7f75f5b | |||
a4fb0651d5 | |||
50a58eab16 | |||
1f347e17eb |
@ -5,7 +5,4 @@ php:
|
||||
- 5.4
|
||||
- 5.3
|
||||
- 5.2
|
||||
|
||||
matrix:
|
||||
allow_failures:
|
||||
- php: 5.2
|
||||
- hhvm
|
20
CONTRIBUTING.md
Normal file
20
CONTRIBUTING.md
Normal file
@ -0,0 +1,20 @@
|
||||
Pull Requests
|
||||
-------------
|
||||
|
||||
Do create pull requests that:
|
||||
|
||||
* resolve an issue
|
||||
* improve an existing feature or text
|
||||
|
||||
Do not create pull requests that:
|
||||
|
||||
* introduce a feature or text
|
||||
* change the interface
|
||||
* change the coding style
|
||||
|
||||
If a pull request contains unrelated changes, they should be submitted as separate pull requests.
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
By contributing to the project, you grant the creator of the project a perpetual, worldwide, irrevocable license to use, reproduce and distribute your contributions and derivative works. You also warrant that you are the sole owner of your contributions and that they are your original works of authorship.
|
1412
Parsedown.php
1412
Parsedown.php
File diff suppressed because it is too large
Load Diff
25
README.md
25
README.md
@ -1,9 +1,20 @@
|
||||
## Parsedown PHP
|
||||
## Parsedown
|
||||
|
||||
Parsedown is a parser for Markdown. It parses Markdown text the way people do. First, it divides texts into blocks. Then it looks at how these blocks start and how they relate to each other. Finally, it looks for special characters to identify inline elements. As a result, Parsedown is (super) fast, consistent and clean.
|
||||
Better [Markdown](http://en.wikipedia.org/wiki/Markdown) parser for PHP.
|
||||
|
||||
[Explorer (demo)](http://parsedown.org/explorer/)
|
||||
[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)
|
||||
* [GitHub Flavored](https://help.github.com/articles/github-flavored-markdown)
|
||||
* [tested](https://travis-ci.org/erusev/parsedown) in PHP 5.2, 5.3, 5.4, 5.5 and [hhvm](http://www.hhvm.com/)
|
||||
* friendly to international input
|
||||
|
||||
### Installation
|
||||
|
||||
@ -12,9 +23,9 @@ Include `Parsedown.php` or install [the composer package](https://packagist.org/
|
||||
### Example
|
||||
|
||||
```php
|
||||
$text = 'Hello **Parsedown**!';
|
||||
$text = 'Hello *Parsedown*!';
|
||||
|
||||
$result = Parsedown::instance()->parse($text);
|
||||
|
||||
echo $result; # prints: <p>Hello <strong>Parsedown</strong>!</p>
|
||||
```
|
||||
echo $result; # prints: <p>Hello <em>Parsedown</em>!</p>
|
||||
```
|
||||
|
@ -5,43 +5,53 @@ include 'Parsedown.php';
|
||||
class Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
const provider_dir = 'data/';
|
||||
|
||||
|
||||
/**
|
||||
* @dataProvider provider
|
||||
*/
|
||||
function test_($markdown, $expected_markup)
|
||||
function test_($filename)
|
||||
{
|
||||
$path = $this->get_data_path();
|
||||
$markdown = file_get_contents($path . $filename . '.md');
|
||||
$expected_markup = file_get_contents($path . $filename . '.html');
|
||||
$expected_markup = str_replace("\r\n", "\n", $expected_markup);
|
||||
$expected_markup = str_replace("\r", "\n", $expected_markup);
|
||||
|
||||
$actual_markup = Parsedown::instance()->parse($markdown);
|
||||
|
||||
$this->assertEquals($expected_markup, $actual_markup);
|
||||
}
|
||||
|
||||
|
||||
function provider()
|
||||
{
|
||||
$provider = array();
|
||||
|
||||
$DirectoryIterator = new DirectoryIterator(__DIR__ . '/' . self::provider_dir);
|
||||
|
||||
|
||||
$path = $this->get_data_path();
|
||||
$DirectoryIterator = new DirectoryIterator($path);
|
||||
|
||||
foreach ($DirectoryIterator as $Item)
|
||||
{
|
||||
if ($Item->isFile() and $Item->getExtension() === 'md')
|
||||
if ($Item->isFile())
|
||||
{
|
||||
$basename = $Item->getBasename('.md');
|
||||
|
||||
$markdown = file_get_contents(__DIR__ . '/' . self::provider_dir . $basename . '.md');
|
||||
|
||||
if (!$markdown)
|
||||
$filename = $Item->getFilename();
|
||||
|
||||
$extension = pathinfo($filename, PATHINFO_EXTENSION);
|
||||
|
||||
if ($extension !== 'md')
|
||||
continue;
|
||||
|
||||
$expected_markup = file_get_contents(__DIR__ . '/' . self::provider_dir . $basename . '.html');
|
||||
$expected_markup = str_replace("\r\n", "\n", $expected_markup);
|
||||
$expected_markup = str_replace("\r", "\n", $expected_markup);
|
||||
|
||||
$provider [] = array($markdown, $expected_markup);
|
||||
|
||||
$basename = $Item->getBasename('.md');
|
||||
if (file_exists($path.$basename.'.html')) {
|
||||
$provider [] = array($basename);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $provider;
|
||||
}
|
||||
}
|
||||
|
||||
function get_data_path()
|
||||
{
|
||||
return dirname(__FILE__).'/'.self::provider_dir;
|
||||
}
|
||||
}
|
@ -1,6 +1,8 @@
|
||||
<h1>This is an h1</h1>
|
||||
<h2>This is an h2</h2>
|
||||
<h3>This is an h3</h3>
|
||||
<h4>This is an h4</h4>
|
||||
<h5>This is an h5</h5>
|
||||
<h6>This is an h6</h6>
|
||||
<h1>h1</h1>
|
||||
<h2>h2</h2>
|
||||
<h3>h3</h3>
|
||||
<h4>h4</h4>
|
||||
<h5>h5</h5>
|
||||
<h6>h6</h6>
|
||||
<h1>closed h1</h1>
|
||||
<p>#</p>
|
@ -1,11 +1,15 @@
|
||||
# This is an h1
|
||||
# h1
|
||||
|
||||
## This is an h2
|
||||
## h2
|
||||
|
||||
### This is an h3
|
||||
### h3
|
||||
|
||||
#### This is an h4
|
||||
#### h4
|
||||
|
||||
##### This is an h5
|
||||
##### h5
|
||||
|
||||
###### This is an h6
|
||||
###### h6
|
||||
|
||||
# closed h1 #
|
||||
|
||||
#
|
@ -1,6 +0,0 @@
|
||||
<h1>h1</h1>
|
||||
<h2>h2</h2>
|
||||
<h3>h3</h3>
|
||||
<h4>h4</h4>
|
||||
<h5>h5</h5>
|
||||
<h6>h6</h6>
|
@ -1,11 +0,0 @@
|
||||
# h1 #
|
||||
|
||||
## h2 ##
|
||||
|
||||
### h3 ###
|
||||
|
||||
#### h4 ####
|
||||
|
||||
##### h5 #####
|
||||
|
||||
###### h6 ######
|
5
tests/data/block-level_html.html
Normal file
5
tests/data/block-level_html.html
Normal file
@ -0,0 +1,5 @@
|
||||
<div>_content_</div>
|
||||
<p>sparse:</p>
|
||||
<div>
|
||||
_content_
|
||||
</div>
|
7
tests/data/block-level_html.md
Normal file
7
tests/data/block-level_html.md
Normal file
@ -0,0 +1,7 @@
|
||||
<div>_content_</div>
|
||||
|
||||
sparse:
|
||||
|
||||
<div>
|
||||
_content_
|
||||
</div>
|
@ -1,9 +0,0 @@
|
||||
<p>Here's a blockquote:</p>
|
||||
<blockquote>
|
||||
<p>blockquote</p>
|
||||
</blockquote>
|
||||
<p>Here's one on multiple lines:</p>
|
||||
<blockquote>
|
||||
<p>line 1
|
||||
line 2</p>
|
||||
</blockquote>
|
@ -1,8 +0,0 @@
|
||||
Here's a blockquote:
|
||||
|
||||
> blockquote
|
||||
|
||||
Here's one on multiple lines:
|
||||
|
||||
> line 1
|
||||
> line 2
|
@ -1,16 +0,0 @@
|
||||
<p>Here's one with multiple paragraphs:</p>
|
||||
<blockquote>
|
||||
<p>This is line one.</p>
|
||||
<p>This is line two.</p>
|
||||
</blockquote>
|
||||
<p>Here's one with multiple types of blocks:</p>
|
||||
<blockquote>
|
||||
<p>This is a quoted paragraph.</p>
|
||||
<ul>
|
||||
<li>This is a list item of a quoted list.</li>
|
||||
<li>This is another list item.</li>
|
||||
</ul>
|
||||
<blockquote>
|
||||
<p>This is a nested quote block.</p>
|
||||
</blockquote>
|
||||
</blockquote>
|
@ -1,14 +0,0 @@
|
||||
Here's one with multiple paragraphs:
|
||||
|
||||
> This is line one.
|
||||
>
|
||||
> This is line two.
|
||||
|
||||
Here's one with multiple types of blocks:
|
||||
|
||||
> This is a quoted paragraph.
|
||||
>
|
||||
> - This is a list item of a quoted list.
|
||||
> - This is another list item.
|
||||
>
|
||||
> > This is a nested quote block.
|
@ -1,11 +0,0 @@
|
||||
<p>Here's a lazy blockquote:</p>
|
||||
<blockquote>
|
||||
<p>line
|
||||
line</p>
|
||||
</blockquote>
|
||||
<p>Here's one with multiple lines:</p>
|
||||
<blockquote>
|
||||
<p>line
|
||||
line
|
||||
line</p>
|
||||
</blockquote>
|
@ -1,10 +0,0 @@
|
||||
Here's a lazy blockquote:
|
||||
|
||||
> line
|
||||
line
|
||||
|
||||
Here's one with multiple lines:
|
||||
|
||||
> line
|
||||
line
|
||||
line
|
@ -1,12 +0,0 @@
|
||||
<p>Here's a blockquote with no space after the ">":</p>
|
||||
<blockquote>
|
||||
<p>blockquote</p>
|
||||
</blockquote>
|
||||
<p>Here's a blockquote with leading space:</p>
|
||||
<blockquote>
|
||||
<p>blockquote</p>
|
||||
</blockquote>
|
||||
<p>Here's a blockquote on the next line:</p>
|
||||
<blockquote>
|
||||
<p>blockquote</p>
|
||||
</blockquote>
|
@ -1,10 +0,0 @@
|
||||
Here's a blockquote with no space after the ">":
|
||||
|
||||
>blockquote
|
||||
|
||||
Here's a blockquote with leading space:
|
||||
|
||||
> blockquote
|
||||
|
||||
Here's a blockquote on the next line:
|
||||
> blockquote
|
@ -1,5 +1,8 @@
|
||||
<p>Here's a code block:</p>
|
||||
<pre><code><?php
|
||||
|
||||
$message = 'Hello World!';
|
||||
echo $message;</code></pre>
|
||||
echo $message;</code></pre>
|
||||
<hr />
|
||||
<pre><code>> not a quote
|
||||
- not a list item
|
||||
[not a reference]: http://foo.com</code></pre>
|
@ -1,6 +1,11 @@
|
||||
Here's a code block:
|
||||
|
||||
<?php
|
||||
|
||||
$message = 'Hello World!';
|
||||
echo $message;
|
||||
echo $message;
|
||||
|
||||
---
|
||||
|
||||
> not a quote
|
||||
- not a list item
|
||||
[not a reference]: http://foo.com
|
||||
|
@ -1 +1,5 @@
|
||||
<p>This is a <code>code span</code>.</p>
|
||||
<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>
|
@ -1 +1,9 @@
|
||||
This is a `code span`.
|
||||
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` ``
|
9
tests/data/compound_blockquote.html
Normal file
9
tests/data/compound_blockquote.html
Normal file
@ -0,0 +1,9 @@
|
||||
<blockquote>
|
||||
<h2>header</h2>
|
||||
<p>paragraph</p>
|
||||
<ul>
|
||||
<li>li</li>
|
||||
</ul>
|
||||
<hr />
|
||||
<p>paragraph</p>
|
||||
</blockquote>
|
10
tests/data/compound_blockquote.md
Normal file
10
tests/data/compound_blockquote.md
Normal file
@ -0,0 +1,10 @@
|
||||
> header
|
||||
> ------
|
||||
>
|
||||
> paragraph
|
||||
>
|
||||
> - li
|
||||
>
|
||||
> ---
|
||||
>
|
||||
> paragraph
|
2
tests/data/compound_emphasis.html
Normal file
2
tests/data/compound_emphasis.html
Normal file
@ -0,0 +1,2 @@
|
||||
<p><em><code>code</code></em> <strong><code>code</code></strong></p>
|
||||
<p><em><code>code</code><strong><code>code</code></strong><code>code</code></em></p>
|
4
tests/data/compound_emphasis.md
Normal file
4
tests/data/compound_emphasis.md
Normal file
@ -0,0 +1,4 @@
|
||||
_`code`_ __`code`__
|
||||
|
||||
*`code`**`code`**`code`*
|
||||
|
12
tests/data/compound_list.html
Normal file
12
tests/data/compound_list.html
Normal file
@ -0,0 +1,12 @@
|
||||
<ul>
|
||||
<li>
|
||||
<p>paragraph</p>
|
||||
<p>paragraph</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>paragraph</p>
|
||||
<blockquote>
|
||||
<p>quote</p>
|
||||
</blockquote>
|
||||
</li>
|
||||
</ul>
|
7
tests/data/compound_list.md
Normal file
7
tests/data/compound_list.md
Normal file
@ -0,0 +1,7 @@
|
||||
- paragraph
|
||||
|
||||
paragraph
|
||||
|
||||
- paragraph
|
||||
|
||||
> quote
|
18
tests/data/deeply_nested_list.html
Normal file
18
tests/data/deeply_nested_list.html
Normal file
@ -0,0 +1,18 @@
|
||||
<ul>
|
||||
<li>li
|
||||
<ul>
|
||||
<li>li
|
||||
<ul>
|
||||
<li>li
|
||||
<ul>
|
||||
<li>li</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>li</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>li</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>li</li>
|
||||
</ul>
|
7
tests/data/deeply_nested_list.md
Normal file
7
tests/data/deeply_nested_list.md
Normal file
@ -0,0 +1,7 @@
|
||||
- li
|
||||
- li
|
||||
- li
|
||||
- li
|
||||
- li
|
||||
- li
|
||||
- li
|
8
tests/data/em_strong.html
Normal file
8
tests/data/em_strong.html
Normal file
@ -0,0 +1,8 @@
|
||||
<p><strong><em>em strong</em></strong></p>
|
||||
<p><strong><em>em strong</em> strong</strong></p>
|
||||
<p><strong>strong <em>em strong</em></strong></p>
|
||||
<p><strong>strong <em>em strong</em> strong</strong></p>
|
||||
<p><strong><em>em strong</em></strong></p>
|
||||
<p><strong><em>em strong</em> strong</strong></p>
|
||||
<p><strong>strong <em>em strong</em></strong></p>
|
||||
<p><strong>strong <em>em strong</em> strong</strong></p>
|
15
tests/data/em_strong.md
Normal file
15
tests/data/em_strong.md
Normal file
@ -0,0 +1,15 @@
|
||||
___em strong___
|
||||
|
||||
___em strong_ strong__
|
||||
|
||||
__strong _em strong___
|
||||
|
||||
__strong _em strong_ strong__
|
||||
|
||||
***em strong***
|
||||
|
||||
***em strong* strong**
|
||||
|
||||
**strong *em strong***
|
||||
|
||||
**strong *em strong* strong**
|
1
tests/data/email.html
Normal file
1
tests/data/email.html
Normal file
@ -0,0 +1 @@
|
||||
<p>my email is <a href="mailto:me@example.com">me@example.com</a></p>
|
1
tests/data/email.md
Normal file
1
tests/data/email.md
Normal file
@ -0,0 +1 @@
|
||||
my email is <me@example.com>
|
@ -1,7 +1,8 @@
|
||||
<p>Here's <em>an emphasis</em>.</p>
|
||||
<p>A short one <em>a</em> <em>b</em> .</p>
|
||||
<p>Here's <strong>a strong one</strong>. </p>
|
||||
<p>Here's <em>one that uses underscores</em>. </p>
|
||||
<p>Here's <strong>a strong one that uses underscores</strong>.</p>
|
||||
<p>This is not _ one _ neither is * this * neither is _ this_ neither is _this _.</p>
|
||||
<p>An empty emphasis ** is not __ an emphasis.</p>
|
||||
<p><em>underscore</em>, <em>asterisk</em>, <em>one two</em>, <em>three four</em>, <em>a</em>, <em>b</em></p>
|
||||
<p><strong>strong</strong> and <em>em</em> and <strong>strong</strong> and <em>em</em></p>
|
||||
<p><em>line
|
||||
line
|
||||
line</em></p>
|
||||
<p>this_is_not_an_emphasis</p>
|
||||
<p>an empty emphasis __ ** is not an emphasis</p>
|
||||
<p>*mixed *<em>double and</em> single asterisk** spans</p>
|
@ -1,13 +1,13 @@
|
||||
Here's *an emphasis*.
|
||||
_underscore_, *asterisk*, _one two_, *three four*, _a_, *b*
|
||||
|
||||
A short one _a_ *b* .
|
||||
**strong** and *em* and **strong** and *em*
|
||||
|
||||
Here's **a strong one**.
|
||||
_line
|
||||
line
|
||||
line_
|
||||
|
||||
Here's _one that uses underscores_.
|
||||
this_is_not_an_emphasis
|
||||
|
||||
Here's __a strong one that uses underscores__.
|
||||
an empty emphasis __ ** is not an emphasis
|
||||
|
||||
This is not _ one _ neither is * this * neither is _ this_ neither is _this _.
|
||||
|
||||
An empty emphasis ** is not __ an emphasis.
|
||||
*mixed **double and* single asterisk** spans
|
@ -1,2 +1,4 @@
|
||||
<p>Here's an <em>emphasis</em> and here's an escaped *emphasis*. Here are also an escaped `code span`, an escaped [inline link](http://example.com) and an escaped <code>\*emphasis\*</code> inside of a code span.</p>
|
||||
<pre><code>An escaped \*emphasis\* inside of a code block.</code></pre>
|
||||
<p>escaped *emphasis*.</p>
|
||||
<p><code>escaped \*emphasis\* in a code span</code></p>
|
||||
<pre><code>escaped \*emphasis\* in a code block</code></pre>
|
||||
<p>\ ` * _ { } [ ] ( ) > # + - . !</p>
|
@ -1,3 +1,7 @@
|
||||
Here's an *emphasis* and here's an escaped \*emphasis\*. Here are also an escaped \`code span\`, an escaped \[inline link](http://example.com) and an escaped `\*emphasis\*` inside of a code span.
|
||||
escaped \*emphasis\*.
|
||||
|
||||
An escaped \*emphasis\* inside of a code block.
|
||||
`escaped \*emphasis\* in a code span`
|
||||
|
||||
escaped \*emphasis\* in a code block
|
||||
|
||||
\\ \` \* \_ \{ \} \[ \] \( \) \> \# \+ \- \. \!
|
6
tests/data/fenced_code_block.html
Normal file
6
tests/data/fenced_code_block.html
Normal file
@ -0,0 +1,6 @@
|
||||
<pre><code><?php
|
||||
|
||||
$message = 'fenced code block';
|
||||
echo $message;</code></pre>
|
||||
<pre><code>tilde</code></pre>
|
||||
<pre><code class="language-php">echo 'language identifier';</code></pre>
|
14
tests/data/fenced_code_block.md
Normal file
14
tests/data/fenced_code_block.md
Normal file
@ -0,0 +1,14 @@
|
||||
```
|
||||
<?php
|
||||
|
||||
$message = 'fenced code block';
|
||||
echo $message;
|
||||
```
|
||||
|
||||
~~~
|
||||
tilde
|
||||
~~~
|
||||
|
||||
```php
|
||||
echo 'language identifier';
|
||||
```
|
@ -1,10 +1,5 @@
|
||||
<p>Dashes:</p>
|
||||
<hr />
|
||||
<hr />
|
||||
<hr />
|
||||
<p>Asterisks:</p>
|
||||
<hr />
|
||||
<p>Underscores:</p>
|
||||
<hr />
|
||||
<p>On the next line:</p>
|
||||
<hr />
|
@ -1,18 +1,9 @@
|
||||
Dashes:
|
||||
|
||||
---
|
||||
|
||||
- - -
|
||||
|
||||
- - -
|
||||
|
||||
Asterisks:
|
||||
|
||||
***
|
||||
|
||||
Underscores:
|
||||
|
||||
___
|
||||
|
||||
On the next line:
|
||||
___
|
@ -1,15 +0,0 @@
|
||||
<p>A self-closing tag:</p>
|
||||
<hr/>
|
||||
<p>One with attributes:</p>
|
||||
<hr style="background: #eaa" />
|
||||
<p>A bare element:</p>
|
||||
<div>content</div>
|
||||
<p>One with attributes:</p>
|
||||
<a href="http://example.com">link</a>
|
||||
<p>Nested elements:</p>
|
||||
<div>
|
||||
parent
|
||||
<div>
|
||||
child
|
||||
</div>
|
||||
</div>
|
@ -1,24 +0,0 @@
|
||||
A self-closing tag:
|
||||
|
||||
<hr/>
|
||||
|
||||
One with attributes:
|
||||
|
||||
<hr style="background: #eaa" />
|
||||
|
||||
A bare element:
|
||||
|
||||
<div>content</div>
|
||||
|
||||
One with attributes:
|
||||
|
||||
<a href="http://example.com">link</a>
|
||||
|
||||
Nested elements:
|
||||
|
||||
<div>
|
||||
parent
|
||||
<div>
|
||||
child
|
||||
</div>
|
||||
</div>
|
1
tests/data/html_entity.html
Normal file
1
tests/data/html_entity.html
Normal file
@ -0,0 +1 @@
|
||||
<p>& © {</p>
|
1
tests/data/html_entity.md
Normal file
1
tests/data/html_entity.md
Normal file
@ -0,0 +1 @@
|
||||
& © {
|
1
tests/data/image_reference.html
Normal file
1
tests/data/image_reference.html
Normal file
@ -0,0 +1 @@
|
||||
<p><img alt="Markdown Logo" src="/md.png" /></p>
|
3
tests/data/image_reference.md
Normal file
3
tests/data/image_reference.md
Normal file
@ -0,0 +1,3 @@
|
||||
![Markdown Logo][image]
|
||||
|
||||
[image]: /md.png
|
1
tests/data/image_title.html
Normal file
1
tests/data/image_title.html
Normal file
@ -0,0 +1 @@
|
||||
<p><img alt="alt" src="/md.png" title="title" /></p>
|
1
tests/data/image_title.md
Normal file
1
tests/data/image_title.md
Normal file
@ -0,0 +1 @@
|
||||

|
3
tests/data/implicit_reference.html
Normal file
3
tests/data/implicit_reference.html
Normal file
@ -0,0 +1,3 @@
|
||||
<p>an <a href="http://example.com">implicit</a> reference link</p>
|
||||
<p>an <a href="http://example.com">implicit</a> reference link with an empty link definition</p>
|
||||
<p>an <a href="http://example.com" title="Example">explicit</a> reference link with a title</p>
|
9
tests/data/implicit_reference.md
Normal file
9
tests/data/implicit_reference.md
Normal file
@ -0,0 +1,9 @@
|
||||
an [implicit] reference link
|
||||
|
||||
[implicit]: http://example.com
|
||||
|
||||
an [implicit][] reference link with an empty link definition
|
||||
|
||||
an [explicit][example] reference link with a title
|
||||
|
||||
[example]: http://example.com "Example"
|
@ -1,2 +1,4 @@
|
||||
<p>Here's a <a href="http://example.com">link</a>.</p>
|
||||
<p>Here's one that is based on an image: <a href="http://daringfireball.net/projects/markdown/"><img alt="MD Logo" src="http://parsedown.org/md.png"></a>.</p>
|
||||
<p><a href="http://example.com">link</a> and <a href="/tests/">another link</a></p>
|
||||
<p><a href="http://example.com"><code>link</code></a></p>
|
||||
<p><a href="http://example.com"><img alt="MD Logo" src="http://parsedown.org/md.png" /></a></p>
|
||||
<p><a href="http://example.com"><img alt="MD Logo" src="http://parsedown.org/md.png" /> and text</a></p>
|
@ -1,3 +1,7 @@
|
||||
Here's a [link](http://example.com).
|
||||
[link](http://example.com) and [another link](/tests/)
|
||||
|
||||
Here's one that is based on an image: [](http://daringfireball.net/projects/markdown/).
|
||||
[`link`](http://example.com)
|
||||
|
||||
[](http://example.com)
|
||||
|
||||
[ and text](http://example.com)
|
1
tests/data/inline_link_title.html
Normal file
1
tests/data/inline_link_title.html
Normal file
@ -0,0 +1 @@
|
||||
<p><a href="http://example.com" title="Title">single quotes</a> and <a href="http://example.com" title="Title">double quotes</a></p>
|
1
tests/data/inline_link_title.md
Normal file
1
tests/data/inline_link_title.md
Normal file
@ -0,0 +1 @@
|
||||
[single quotes](http://example.com 'Title') and [double quotes](http://example.com "Title")
|
1
tests/data/inline_title.html
Normal file
1
tests/data/inline_title.html
Normal file
@ -0,0 +1 @@
|
||||
<p><a href="http://example.com" title="Example">single quotes</a> and <a href="http://example.com" title="Example">double quotes</a></p>
|
1
tests/data/inline_title.md
Normal file
1
tests/data/inline_title.md
Normal file
@ -0,0 +1 @@
|
||||
[single quotes](http://example.com 'Example') and [double quotes](http://example.com "Example")
|
4
tests/data/lazy_blockquote.html
Normal file
4
tests/data/lazy_blockquote.html
Normal file
@ -0,0 +1,4 @@
|
||||
<blockquote>
|
||||
<p>quote
|
||||
the rest of it</p>
|
||||
</blockquote>
|
2
tests/data/lazy_blockquote.md
Normal file
2
tests/data/lazy_blockquote.md
Normal file
@ -0,0 +1,2 @@
|
||||
> quote
|
||||
the rest of it
|
4
tests/data/lazy_list.html
Normal file
4
tests/data/lazy_list.html
Normal file
@ -0,0 +1,4 @@
|
||||
<ul>
|
||||
<li>li
|
||||
the rest of it</li>
|
||||
</ul>
|
2
tests/data/lazy_list.md
Normal file
2
tests/data/lazy_list.md
Normal file
@ -0,0 +1,2 @@
|
||||
- li
|
||||
the rest of it
|
@ -1,4 +0,0 @@
|
||||
Here's a list:
|
||||
|
||||
- li
|
||||
- li
|
@ -1,13 +0,0 @@
|
||||
<p>Here's a compound list:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>This is the first paragraph of the list item.</p>
|
||||
<p>This is the second one.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>This is another list item.</p>
|
||||
<blockquote>
|
||||
<p>This is a quote block that belongs to it.</p>
|
||||
</blockquote>
|
||||
</li>
|
||||
</ul>
|
@ -1,9 +0,0 @@
|
||||
Here's a compound list:
|
||||
|
||||
- This is the first paragraph of the list item.
|
||||
|
||||
This is the second one.
|
||||
|
||||
- This is another list item.
|
||||
|
||||
> This is a quote block that belongs to it.
|
@ -1,4 +0,0 @@
|
||||
<ul>
|
||||
<li>li
|
||||
more text</li>
|
||||
</ul>
|
@ -1,2 +0,0 @@
|
||||
- li
|
||||
more text
|
@ -1,14 +0,0 @@
|
||||
<p>Here's a regular ordered list:</p>
|
||||
<ol>
|
||||
<li>one</li>
|
||||
<li>two</li>
|
||||
</ol>
|
||||
<p>Here's one with repeating numbers:</p>
|
||||
<ol>
|
||||
<li>one</li>
|
||||
<li>two</li>
|
||||
</ol>
|
||||
<p>Here's one with large numbers:</p>
|
||||
<ol>
|
||||
<li>one</li>
|
||||
</ol>
|
@ -1,13 +0,0 @@
|
||||
Here's a regular ordered list:
|
||||
|
||||
1. one
|
||||
2. two
|
||||
|
||||
Here's one with repeating numbers:
|
||||
|
||||
1. one
|
||||
1. two
|
||||
|
||||
Here's one with large numbers:
|
||||
|
||||
123. one
|
@ -1,16 +0,0 @@
|
||||
<p>Here's a sparse list:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>list item</p>
|
||||
</li>
|
||||
<li>another list item</li>
|
||||
</ul>
|
||||
<p>Here's one with an indented list item:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>li</p>
|
||||
<ul>
|
||||
<li>li</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
@ -1,11 +0,0 @@
|
||||
Here's a sparse list:
|
||||
|
||||
- list item
|
||||
|
||||
- another list item
|
||||
|
||||
Here's one with an indented list item:
|
||||
|
||||
- li
|
||||
|
||||
- li
|
@ -1,10 +0,0 @@
|
||||
Here's an unordered list:
|
||||
|
||||
- li
|
||||
- li
|
||||
|
||||
Here's one with mixed markers:
|
||||
|
||||
- li
|
||||
+ li
|
||||
* li
|
@ -1,5 +0,0 @@
|
||||
<p>Here's one with white space around items:</p>
|
||||
<ul>
|
||||
<li>li </li>
|
||||
<li>li </li>
|
||||
</ul>
|
@ -1,4 +0,0 @@
|
||||
Here's one with white space around items:
|
||||
|
||||
- li
|
||||
- li
|
7
tests/data/multiline_list_paragraph.html
Normal file
7
tests/data/multiline_list_paragraph.html
Normal file
@ -0,0 +1,7 @@
|
||||
<ul>
|
||||
<li>
|
||||
<p>li</p>
|
||||
<p>line
|
||||
line</p>
|
||||
</li>
|
||||
</ul>
|
4
tests/data/multiline_list_paragraph.md
Normal file
4
tests/data/multiline_list_paragraph.md
Normal file
@ -0,0 +1,4 @@
|
||||
- li
|
||||
|
||||
line
|
||||
line
|
10
tests/data/nested_block-level_html.html
Normal file
10
tests/data/nested_block-level_html.html
Normal file
@ -0,0 +1,10 @@
|
||||
<div>
|
||||
_parent_
|
||||
<div>
|
||||
_child_
|
||||
</div>
|
||||
<pre>
|
||||
_adopted child_
|
||||
</pre>
|
||||
</div>
|
||||
<p><em>outside</em></p>
|
11
tests/data/nested_block-level_html.md
Normal file
11
tests/data/nested_block-level_html.md
Normal file
@ -0,0 +1,11 @@
|
||||
<div>
|
||||
_parent_
|
||||
<div>
|
||||
_child_
|
||||
</div>
|
||||
<pre>
|
||||
_adopted child_
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
_outside_
|
13
tests/data/ordered_list.html
Normal file
13
tests/data/ordered_list.html
Normal file
@ -0,0 +1,13 @@
|
||||
<ol>
|
||||
<li>one</li>
|
||||
<li>two</li>
|
||||
</ol>
|
||||
<p>repeating numbers:</p>
|
||||
<ol>
|
||||
<li>one</li>
|
||||
<li>two</li>
|
||||
</ol>
|
||||
<p>large numbers:</p>
|
||||
<ol>
|
||||
<li>one</li>
|
||||
</ol>
|
11
tests/data/ordered_list.md
Normal file
11
tests/data/ordered_list.md
Normal file
@ -0,0 +1,11 @@
|
||||
1. one
|
||||
2. two
|
||||
|
||||
repeating numbers:
|
||||
|
||||
1. one
|
||||
1. two
|
||||
|
||||
large numbers:
|
||||
|
||||
123. one
|
12
tests/data/paragraph_list.html
Normal file
12
tests/data/paragraph_list.html
Normal file
@ -0,0 +1,12 @@
|
||||
<p>paragraph</p>
|
||||
<ul>
|
||||
<li>li</li>
|
||||
<li>li</li>
|
||||
</ul>
|
||||
<p>paragraph</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>li</p>
|
||||
</li>
|
||||
<li>li</li>
|
||||
</ul>
|
9
tests/data/paragraph_list.md
Normal file
9
tests/data/paragraph_list.md
Normal file
@ -0,0 +1,9 @@
|
||||
paragraph
|
||||
- li
|
||||
- li
|
||||
|
||||
paragraph
|
||||
|
||||
* li
|
||||
|
||||
* li
|
@ -1,7 +0,0 @@
|
||||
<p>Here's a <a href="http://example.com">reference link</a>.</p>
|
||||
<p>Here's <a href="http://example.com">one</a> with a semantic name.</p>
|
||||
<p>Here's <a href="http://example.com">one</a> with an upper case label definition.</p>
|
||||
<p>Here's <a href="http://example.com">one</a> with definition name on the next line.</p>
|
||||
<p>Here's [one][404] with no definition.</p>
|
||||
<p>Here's a <a href="http://example.com">multiline
|
||||
one</a> defined on 2 lines.</p>
|
@ -1,19 +0,0 @@
|
||||
Here's a [reference link][1].
|
||||
|
||||
[1]: http://example.com
|
||||
|
||||
Here's [one][website] with a semantic name.
|
||||
|
||||
[website]: http://example.com
|
||||
|
||||
Here's [one][case] with an upper case label definition.
|
||||
|
||||
[CASE]: http://example.com
|
||||
|
||||
Here's [one]
|
||||
[website] with definition name on the next line.
|
||||
|
||||
Here's [one][404] with no definition.
|
||||
|
||||
Here's a [multiline
|
||||
one][website] defined on 2 lines.
|
@ -1 +0,0 @@
|
||||
<p>Here's an image: <img alt="Markdown Logo" src="/md.png"></p>
|
@ -1,3 +0,0 @@
|
||||
Here's an image: ![Markdown Logo][image]
|
||||
|
||||
[image]: /md.png
|
@ -1,2 +0,0 @@
|
||||
<p>Here's an <a href="http://example.com">implicit</a> reference link.</p>
|
||||
<p>Here's an <a href="http://example.com">implicit</a> one with an empty link definition.</p>
|
@ -1,5 +0,0 @@
|
||||
Here's an [implicit] reference link.
|
||||
|
||||
[implicit]: http://example.com
|
||||
|
||||
Here's an [implicit][] one with an empty link definition.
|
@ -1 +0,0 @@
|
||||
<p>Here's a <a href="http://example.com">reference link</a> with a definition on the next line.</p>
|
@ -1,2 +0,0 @@
|
||||
Here's a [reference link][2] with a definition on the next line.
|
||||
[2]: http://example.com
|
2
tests/data/reference_title.html
Normal file
2
tests/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
tests/data/reference_title.md
Normal file
6
tests/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
|
4
tests/data/self-closing_block-level_html.html
Normal file
4
tests/data/self-closing_block-level_html.html
Normal file
@ -0,0 +1,4 @@
|
||||
<hr />
|
||||
<p>attributes:</p>
|
||||
<hr style="background: #9bd;" />
|
||||
<p>...</p>
|
7
tests/data/self-closing_block-level_html.md
Normal file
7
tests/data/self-closing_block-level_html.md
Normal file
@ -0,0 +1,7 @@
|
||||
<hr />
|
||||
|
||||
attributes:
|
||||
|
||||
<hr style="background: #9bd;" />
|
||||
|
||||
...
|
11
tests/data/simple_blockquote.html
Normal file
11
tests/data/simple_blockquote.html
Normal file
@ -0,0 +1,11 @@
|
||||
<blockquote>
|
||||
<p>quote</p>
|
||||
</blockquote>
|
||||
<p>indented:</p>
|
||||
<blockquote>
|
||||
<p>quote</p>
|
||||
</blockquote>
|
||||
<p>no space after <code>></code>:</p>
|
||||
<blockquote>
|
||||
<p>quote</p>
|
||||
</blockquote>
|
7
tests/data/simple_blockquote.md
Normal file
7
tests/data/simple_blockquote.md
Normal file
@ -0,0 +1,7 @@
|
||||
> quote
|
||||
|
||||
indented:
|
||||
> quote
|
||||
|
||||
no space after `>`:
|
||||
>quote
|
4
tests/data/span-level_html.html
Normal file
4
tests/data/span-level_html.html
Normal file
@ -0,0 +1,4 @@
|
||||
<p>an <b>important</b> <a href=''>link</a></p>
|
||||
<p>broken<br/>
|
||||
line</p>
|
||||
<p><b>inline tag</b> at the beginning</p>
|
6
tests/data/span-level_html.md
Normal file
6
tests/data/span-level_html.md
Normal file
@ -0,0 +1,6 @@
|
||||
an <b>important</b> <a href=''>link</a>
|
||||
|
||||
broken<br/>
|
||||
line
|
||||
|
||||
<b>inline tag</b> at the beginning
|
@ -1 +0,0 @@
|
||||
<p>Here's an <b>important</b> <a href=''>link</a>.</p>
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user