mirror of
https://github.com/erusev/parsedown.git
synced 2023-08-10 21:13:06 +03:00
Compare commits
143 Commits
Author | SHA1 | Date | |
---|---|---|---|
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 | |||
df3db71698 | |||
a37f5ff31e | |||
8e6f4cf7b8 | |||
ee9a1e92c0 | |||
689ef24cc5 | |||
4403fe4d96 | |||
400c8f7d46 | |||
379cbf34b3 | |||
b6c8cac512 | |||
0e9202689e | |||
7249d02cff | |||
ecf86b073e | |||
b12973415f | |||
6d113f47fb | |||
d4d3612710 | |||
2e314ad474 | |||
e475602e2f | |||
f43f54b877 | |||
d733acc94e | |||
6a0695deb9 | |||
5dd40e7adf | |||
b9808f23e0 | |||
47b1789430 | |||
f8119fa3cb | |||
d306ee3db5 | |||
e15241cb92 | |||
7ab71ade06 | |||
64f82e1e2a | |||
f40dbdfb65 | |||
033c2b78c1 | |||
34035316df | |||
f13214cfa7 | |||
238b1029c0 | |||
bc27850c41 | |||
3afeee3b19 | |||
a94a45f955 | |||
4af89c5087 | |||
0352f01c7e | |||
40c2dcfac7 | |||
097ec5e8a5 | |||
8ac52a2f30 | |||
4a6bb88239 | |||
609ad47c38 | |||
7d7e89f5c3 | |||
5aad1d42d2 | |||
3ff5c623f2 | |||
637b516694 | |||
31b811d3fe | |||
8954b94516 | |||
4e64695055 | |||
b29c2459e0 | |||
15f20fb59e | |||
69a620110a | |||
e4f9620e98 | |||
8c59d05478 | |||
26c02dafed | |||
5de50f101a | |||
7ace421f6d | |||
78cad3964c | |||
8ed3b3d484 | |||
41bf9733b0 | |||
99bf0d4bba | |||
f29981d0a3 | |||
2f051b821c | |||
85dd9fd965 | |||
69de4c46d5 | |||
5bbbabe8aa | |||
ec5f2c6f31 | |||
66f9baf013 | |||
7b091b8915 | |||
0a0a126827 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
||||
.DS_Store
|
||||
.idea
|
||||
nbproject
|
8
.travis.yml
Normal file
8
.travis.yml
Normal file
@ -0,0 +1,8 @@
|
||||
language: php
|
||||
|
||||
php:
|
||||
- 5.5
|
||||
- 5.4
|
||||
- 5.3
|
||||
- 5.2
|
||||
- hhvm
|
35
LICENSE.txt
35
LICENSE.txt
@ -1,21 +1,20 @@
|
||||
Copyright 2013 Emanuil Rusev
|
||||
http://erusev.com
|
||||
The MIT License (MIT)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
Copyright (c) 2013 Emanuil Rusev, erusev.com
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
1480
Parsedown.php
1480
Parsedown.php
File diff suppressed because it is too large
Load Diff
33
README.md
33
README.md
@ -1,4 +1,31 @@
|
||||
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, predictable and its (open) source code - easy to read.
|
||||
## Parsedown
|
||||
|
||||
[Explorer (demo)](http://parsedown.org/explorer/)
|
||||
[Tests](http://parsedown.org/tests/)
|
||||
Better [Markdown](http://en.wikipedia.org/wiki/Markdown) parser for PHP.
|
||||
|
||||
***
|
||||
|
||||
[ [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)
|
||||
* 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/)
|
||||
|
||||
### Installation
|
||||
|
||||
Include `Parsedown.php` or install [the composer package](https://packagist.org/packages/erusev/parsedown).
|
||||
|
||||
### Example
|
||||
|
||||
```php
|
||||
$text = 'Hello _Parsedown_!';
|
||||
|
||||
$result = Parsedown::instance()->parse($text);
|
||||
|
||||
echo $result; # prints: <p>Hello <em>Parsedown</em>!</p>
|
||||
```
|
||||
|
8
phpunit.xml.dist
Normal file
8
phpunit.xml.dist
Normal file
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<phpunit colors="true">
|
||||
<testsuites>
|
||||
<testsuite>
|
||||
<file>tests/Test.php</file>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
</phpunit>
|
@ -1,7 +0,0 @@
|
||||
RewriteEngine on
|
||||
RewriteBase /
|
||||
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
|
||||
RewriteRule ^(.*)$ tests/index.php?$1 [L]
|
55
tests/Test.php
Normal file
55
tests/Test.php
Normal file
@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
include 'Parsedown.php';
|
||||
|
||||
class Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
const provider_dir = 'data/';
|
||||
|
||||
/**
|
||||
* @dataProvider provider
|
||||
*/
|
||||
function test_($markdown, $expected_markup)
|
||||
{
|
||||
$actual_markup = Parsedown::instance()->parse($markdown);
|
||||
|
||||
$this->assertEquals($expected_markup, $actual_markup);
|
||||
}
|
||||
|
||||
function provider()
|
||||
{
|
||||
$provider = array();
|
||||
|
||||
$path = dirname(__FILE__).'/';
|
||||
|
||||
$DirectoryIterator = new DirectoryIterator($path . '/' . self::provider_dir);
|
||||
|
||||
foreach ($DirectoryIterator as $Item)
|
||||
{
|
||||
if ($Item->isFile())
|
||||
{
|
||||
$filename = $Item->getFilename();
|
||||
|
||||
$extension = pathinfo($filename, PATHINFO_EXTENSION);
|
||||
|
||||
if ($extension !== 'md')
|
||||
continue;
|
||||
|
||||
$basename = $Item->getBasename('.md');
|
||||
|
||||
$markdown = file_get_contents($path . '/' . self::provider_dir . $basename . '.md');
|
||||
|
||||
if (!$markdown)
|
||||
continue;
|
||||
|
||||
$expected_markup = file_get_contents($path . '/' . 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);
|
||||
}
|
||||
}
|
||||
|
||||
return $provider;
|
||||
}
|
||||
}
|
8
tests/data/atx_heading.html
Normal file
8
tests/data/atx_heading.html
Normal file
@ -0,0 +1,8 @@
|
||||
<h1>h1</h1>
|
||||
<h2>h2</h2>
|
||||
<h3>h3</h3>
|
||||
<h4>h4</h4>
|
||||
<h5>h5</h5>
|
||||
<h6>h6</h6>
|
||||
<h1>closed h1</h1>
|
||||
<p>#</p>
|
15
tests/data/atx_heading.md
Normal file
15
tests/data/atx_heading.md
Normal file
@ -0,0 +1,15 @@
|
||||
# h1
|
||||
|
||||
## h2
|
||||
|
||||
### h3
|
||||
|
||||
#### h4
|
||||
|
||||
##### h5
|
||||
|
||||
###### h6
|
||||
|
||||
# closed h1 #
|
||||
|
||||
#
|
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>
|
8
tests/data/code_block.html
Normal file
8
tests/data/code_block.html
Normal file
@ -0,0 +1,8 @@
|
||||
<pre><code><?php
|
||||
|
||||
$message = 'Hello World!';
|
||||
echo $message;</code></pre>
|
||||
<hr />
|
||||
<pre><code>> not a quote
|
||||
- not a list item
|
||||
[not a reference]: http://foo.com</code></pre>
|
11
tests/data/code_block.md
Normal file
11
tests/data/code_block.md
Normal file
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
$message = 'Hello World!';
|
||||
echo $message;
|
||||
|
||||
---
|
||||
|
||||
> not a quote
|
||||
- not a list item
|
||||
[not a reference]: http://foo.com
|
||||
|
1
tests/data/code_span.html
Normal file
1
tests/data/code_span.html
Normal file
@ -0,0 +1 @@
|
||||
<p>a <code>code span</code></p>
|
1
tests/data/code_span.md
Normal file
1
tests/data/code_span.md
Normal file
@ -0,0 +1 @@
|
||||
a `code span`
|
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
|
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**
|
8
tests/data/emphasis.html
Normal file
8
tests/data/emphasis.html
Normal file
@ -0,0 +1,8 @@
|
||||
<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>
|
13
tests/data/emphasis.md
Normal file
13
tests/data/emphasis.md
Normal file
@ -0,0 +1,13 @@
|
||||
_underscore_, *asterisk*, _one two_, *three four*, _a_, *b*
|
||||
|
||||
**strong** and *em* and **strong** and *em*
|
||||
|
||||
_line
|
||||
line
|
||||
line_
|
||||
|
||||
this_is_not_an_emphasis
|
||||
|
||||
an empty emphasis __ ** is not an emphasis
|
||||
|
||||
*mixed **double and* single asterisk** spans
|
4
tests/data/escaping.html
Normal file
4
tests/data/escaping.html
Normal file
@ -0,0 +1,4 @@
|
||||
<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>
|
7
tests/data/escaping.md
Normal file
7
tests/data/escaping.md
Normal file
@ -0,0 +1,7 @@
|
||||
escaped \*emphasis\*.
|
||||
|
||||
`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';
|
||||
```
|
5
tests/data/horizontal_rule.html
Normal file
5
tests/data/horizontal_rule.html
Normal file
@ -0,0 +1,5 @@
|
||||
<hr />
|
||||
<hr />
|
||||
<hr />
|
||||
<hr />
|
||||
<hr />
|
9
tests/data/horizontal_rule.md
Normal file
9
tests/data/horizontal_rule.md
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
|
||||
- - -
|
||||
|
||||
- - -
|
||||
|
||||
***
|
||||
|
||||
___
|
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
|
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"
|
4
tests/data/inline_link.html
Normal file
4
tests/data/inline_link.html
Normal file
@ -0,0 +1,4 @@
|
||||
<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>
|
7
tests/data/inline_link.md
Normal file
7
tests/data/inline_link.md
Normal file
@ -0,0 +1,7 @@
|
||||
[link](http://example.com) and [another link](/tests/)
|
||||
|
||||
[`link`](http://example.com)
|
||||
|
||||
[](http://example.com)
|
||||
|
||||
[ and text](http://example.com)
|
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
|
2
tests/data/line_break.html
Normal file
2
tests/data/line_break.html
Normal file
@ -0,0 +1,2 @@
|
||||
<p>line<br />
|
||||
line</p>
|
2
tests/data/line_break.md
Normal file
2
tests/data/line_break.md
Normal file
@ -0,0 +1,2 @@
|
||||
line
|
||||
line
|
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
tests/data/reference_title.html
Normal file
1
tests/data/reference_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/reference_title.md
Normal file
1
tests/data/reference_title.md
Normal file
@ -0,0 +1 @@
|
||||
[single quotes](http://example.com 'Title') and [double quotes](http://example.com "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;" />
|
||||
|
||||
...
|
5
tests/data/setext_header.html
Normal file
5
tests/data/setext_header.html
Normal file
@ -0,0 +1,5 @@
|
||||
<h1>h1</h1>
|
||||
<h2>h2</h2>
|
||||
<h2>single character</h2>
|
||||
<p>not a header</p>
|
||||
<hr />
|
12
tests/data/setext_header.md
Normal file
12
tests/data/setext_header.md
Normal file
@ -0,0 +1,12 @@
|
||||
h1
|
||||
==
|
||||
|
||||
h2
|
||||
--
|
||||
|
||||
single character
|
||||
-
|
||||
|
||||
not a header
|
||||
|
||||
------------
|
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
|
15
tests/data/sparse_list.html
Normal file
15
tests/data/sparse_list.html
Normal file
@ -0,0 +1,15 @@
|
||||
<ul>
|
||||
<li>
|
||||
<p>li</p>
|
||||
</li>
|
||||
<li>li</li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li>
|
||||
<p>li</p>
|
||||
<ul>
|
||||
<li>indented li</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
9
tests/data/sparse_list.md
Normal file
9
tests/data/sparse_list.md
Normal file
@ -0,0 +1,9 @@
|
||||
- li
|
||||
|
||||
- li
|
||||
|
||||
---
|
||||
|
||||
- li
|
||||
|
||||
- indented li
|
7
tests/data/special_characters.html
Normal file
7
tests/data/special_characters.html
Normal file
@ -0,0 +1,7 @@
|
||||
<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>
|
||||
<p><a href="/script?a=1&b=2">inline link</a></p>
|
||||
<p><a href="http://example.com/?a=1&b=2">reference link</a></p>
|
15
tests/data/special_characters.md
Normal file
15
tests/data/special_characters.md
Normal file
@ -0,0 +1,15 @@
|
||||
AT&T has an ampersand in their name
|
||||
|
||||
AT&T is another way to write it
|
||||
|
||||
this & that
|
||||
|
||||
4 < 5 and 6 > 5
|
||||
|
||||
<http://example.com/autolink?a=1&b=2>
|
||||
|
||||
[inline link](/script?a=1&b=2)
|
||||
|
||||
[reference link][1]
|
||||
|
||||
[1]: http://example.com/?a=1&b=2
|
3
tests/data/strikethrough.html
Normal file
3
tests/data/strikethrough.html
Normal file
@ -0,0 +1,3 @@
|
||||
<p><del>strikethrough</del></p>
|
||||
<p>here's <del>one</del> followed by <del>another one</del></p>
|
||||
<p>~~ this ~~ is not one neither is ~this~</p>
|
5
tests/data/strikethrough.md
Normal file
5
tests/data/strikethrough.md
Normal file
@ -0,0 +1,5 @@
|
||||
~~strikethrough~~
|
||||
|
||||
here's ~~one~~ followed by ~~another one~~
|
||||
|
||||
~~ this ~~ is not one neither is ~this~
|
6
tests/data/strong_em.html
Normal file
6
tests/data/strong_em.html
Normal file
@ -0,0 +1,6 @@
|
||||
<p><em>em <strong>strong em</strong></em></p>
|
||||
<p><em><strong>strong em</strong> em</em></p>
|
||||
<p><em>em <strong>strong em</strong> em</em></p>
|
||||
<p><em>em <strong>strong em</strong></em></p>
|
||||
<p><em><strong>strong em</strong> em</em></p>
|
||||
<p><em>em <strong>strong em</strong> em</em></p>
|
11
tests/data/strong_em.md
Normal file
11
tests/data/strong_em.md
Normal file
@ -0,0 +1,11 @@
|
||||
*em **strong em***
|
||||
|
||||
***strong em** em*
|
||||
|
||||
*em **strong em** em*
|
||||
|
||||
_em __strong em___
|
||||
|
||||
___strong em__ em_
|
||||
|
||||
_em __strong em__ em_
|
6
tests/data/tab-indented_code_block.html
Normal file
6
tests/data/tab-indented_code_block.html
Normal file
@ -0,0 +1,6 @@
|
||||
<pre><code><?php
|
||||
|
||||
$message = 'Hello World!';
|
||||
echo $message;
|
||||
|
||||
echo "following a blank line";</code></pre>
|
6
tests/data/tab-indented_code_block.md
Normal file
6
tests/data/tab-indented_code_block.md
Normal file
@ -0,0 +1,6 @@
|
||||
<?php
|
||||
|
||||
$message = 'Hello World!';
|
||||
echo $message;
|
||||
|
||||
echo "following a blank line";
|
7
tests/data/text_reference.html
Normal file
7
tests/data/text_reference.html
Normal file
@ -0,0 +1,7 @@
|
||||
<p><a href="http://example.com">reference link</a></p>
|
||||
<p><a href="http://example.com">one</a> with a semantic name</p>
|
||||
<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"><code>link</code></a></p>
|
18
tests/data/text_reference.md
Normal file
18
tests/data/text_reference.md
Normal file
@ -0,0 +1,18 @@
|
||||
[reference link][1]
|
||||
|
||||
[1]: http://example.com
|
||||
|
||||
[one][website] with a semantic name
|
||||
|
||||
[website]: http://example.com
|
||||
|
||||
[one][404] with no definition
|
||||
|
||||
[multiline
|
||||
one][website] defined on 2 lines
|
||||
|
||||
[one][label] with an upper case label
|
||||
|
||||
[LABEL]: http://example.com
|
||||
|
||||
[`link`][website]
|
10
tests/data/unordered_list.html
Normal file
10
tests/data/unordered_list.html
Normal file
@ -0,0 +1,10 @@
|
||||
<ul>
|
||||
<li>li</li>
|
||||
<li>li</li>
|
||||
</ul>
|
||||
<p>mixed markers:</p>
|
||||
<ul>
|
||||
<li>li</li>
|
||||
<li>li</li>
|
||||
<li>li</li>
|
||||
</ul>
|
8
tests/data/unordered_list.md
Normal file
8
tests/data/unordered_list.md
Normal file
@ -0,0 +1,8 @@
|
||||
- li
|
||||
- li
|
||||
|
||||
mixed markers:
|
||||
|
||||
* li
|
||||
+ li
|
||||
- li
|
2
tests/data/url_autolinking.html
Normal file
2
tests/data/url_autolinking.html
Normal file
@ -0,0 +1,2 @@
|
||||
<p>an autolink <a href="http://example.com">http://example.com</a></p>
|
||||
<p>inside of brackets [<a href="http://example.com">http://example.com</a>], inside of braces {<a href="http://example.com">http://example.com</a>}, inside of parentheses (<a href="http://example.com">http://example.com</a>)</p>
|
3
tests/data/url_autolinking.md
Normal file
3
tests/data/url_autolinking.md
Normal file
@ -0,0 +1,3 @@
|
||||
an autolink http://example.com
|
||||
|
||||
inside of brackets [http://example.com], inside of braces {http://example.com}, inside of parentheses (http://example.com)
|
1
tests/data/whitespace.html
Normal file
1
tests/data/whitespace.html
Normal file
@ -0,0 +1 @@
|
||||
<pre><code>code</code></pre>
|
5
tests/data/whitespace.md
Normal file
5
tests/data/whitespace.md
Normal file
@ -0,0 +1,5 @@
|
||||
|
||||
|
||||
code
|
||||
|
||||
|
@ -1,51 +0,0 @@
|
||||
|
||||
|
||||
.page {
|
||||
margin: 0 auto;
|
||||
width: 640px;
|
||||
}
|
||||
|
||||
.header {
|
||||
background: #555;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.odd {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.even {
|
||||
background: #eee;
|
||||
}
|
||||
|
||||
div.fail {
|
||||
background: #f55;
|
||||
}
|
||||
|
||||
div.pass {
|
||||
background: #595;
|
||||
}
|
||||
|
||||
span.fail {
|
||||
color: #d55;
|
||||
}
|
||||
|
||||
span.pass {
|
||||
color: #595;
|
||||
}
|
||||
|
||||
/* ~ */
|
||||
|
||||
p {
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
th {
|
||||
font-weight: normal;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
th, td {
|
||||
border-bottom: 1px solid #ddd;
|
||||
padding: 5px 10px;
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
<?php
|
||||
|
||||
include '../Parsedown.php';
|
||||
|
||||
$page = $_SERVER['QUERY_STRING']
|
||||
? 'test'
|
||||
: 'index';
|
||||
|
||||
$dir = 'tests/';
|
||||
|
||||
include $page.'_controller.php';
|
||||
include $page.'_view.php';
|
@ -1,46 +0,0 @@
|
||||
<?php
|
||||
|
||||
$DirectoryIterator = new DirectoryIterator($dir);
|
||||
|
||||
$failed_test_count = 0;
|
||||
|
||||
foreach ($DirectoryIterator as $Item)
|
||||
{
|
||||
if ($Item->isFile() and $Item->getBasename() != '.DS_Store')
|
||||
{
|
||||
if ($Item->getExtension() === 'md')
|
||||
{
|
||||
$basename = $Item->getBasename('.md');
|
||||
|
||||
$markdown = file_get_contents($dir.$basename.'.md');
|
||||
$expected_markup = file_get_contents($dir.$basename.'.html');
|
||||
|
||||
if ( ! $markdown)
|
||||
continue;
|
||||
|
||||
$Parsedown = Parsedown::instance();
|
||||
|
||||
$start = microtime(true);
|
||||
|
||||
$actual_markup = $Parsedown->parse($markdown);
|
||||
|
||||
$time = microtime(true) - $start;
|
||||
$time = $time * 1000; # ms?
|
||||
$time = round($time, 2);
|
||||
|
||||
$result = $expected_markup === $actual_markup
|
||||
? 'pass'
|
||||
: 'fail';
|
||||
|
||||
$result === 'fail' and $failed_test_count ++;
|
||||
|
||||
$Tests []= array(
|
||||
'basename' => $basename,
|
||||
'name' => str_replace('_', ' ', $basename),
|
||||
'result' => $result,
|
||||
'time' => $time,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,54 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<!-- (c) 2009 - 2013 Emanuil Rusev, All rights reserved. -->
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
|
||||
<head>
|
||||
|
||||
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
|
||||
|
||||
<link href="reset.css" rel="stylesheet" type="text/css" />
|
||||
<link href="index.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
<title>Parsedown Test</title>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div style="padding: 50px; width: 500px;">
|
||||
|
||||
<h1 style="margin: 0;"><a href="/">Parsedown PHP</a> » Tests</h1>
|
||||
|
||||
<br/>
|
||||
|
||||
<table>
|
||||
|
||||
<tr class="header">
|
||||
<th style="width: 480px;">Test</th>
|
||||
<th style="text-align: right; width: 120px">Time</th>
|
||||
</tr>
|
||||
|
||||
<?php foreach ($Tests as $index => $Test): ?>
|
||||
<tr class="<?= $index % 2 ? 'even' : 'odd' ?>">
|
||||
<td><a href="/tests/<?= $Test['basename'] ?>"><?= $Test['name'] ?></a> - <span class="<?= $Test['result'] ?>"><?= $Test['result'] ?></span></td>
|
||||
<td style="text-align: right;"><?= $Test['time'] ?> ms</td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
|
||||
</table>
|
||||
|
||||
<div class="<?= $failed_test_count ? 'fail' : 'pass' ?>" style="border-top: 1px solid #555; color: #fff; margin-top: 1px; padding:5px 10px;">
|
||||
<?php if ($failed_test_count): ?>
|
||||
<?= $failed_test_count ?> tests failed.
|
||||
<?php else: ?>
|
||||
All <?= count($Tests) ?> tests passed.
|
||||
<?php endif ?>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
108
tests/reset.css
108
tests/reset.css
@ -1,108 +0,0 @@
|
||||
/*
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
a {
|
||||
color: #159;
|
||||
outline: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a img {
|
||||
border: none;
|
||||
}
|
||||
|
||||
abbr {
|
||||
border-bottom: 1px solid #ddd;
|
||||
cursor: help;
|
||||
padding: 2px 3px;
|
||||
}
|
||||
|
||||
body {
|
||||
background: #ddd;
|
||||
color: #333;
|
||||
font-family: Verdana, Sans-serif;
|
||||
font-size: 14px;
|
||||
height: 100%;
|
||||
line-height: 20px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
background: #eee;
|
||||
margin: 0 0 10px 0;
|
||||
padding: 10px 10px 1px 10px;
|
||||
}
|
||||
|
||||
form {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-family: Georgia, "Times New Roman", Times, serif;
|
||||
font-weight: normal;
|
||||
letter-spacing: 1px;
|
||||
margin: 20px 0;
|
||||
}
|
||||
|
||||
h1 {
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
html {
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
img {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
input {
|
||||
font-family: Verdana, Sans-serif;
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
object {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: 0;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
select {
|
||||
font-family: Verdana, Sans-serif;
|
||||
font-size: 14px;
|
||||
/* Makes for the same height as <input>. */
|
||||
height: 40px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
table {
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
textarea {
|
||||
background: #fff;
|
||||
font-family: Verdana, Sans-serif;
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
margin: 0;
|
||||
padding: 9px;
|
||||
width: 280px;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: square;
|
||||
}
|
||||
|
@ -1,58 +0,0 @@
|
||||
/*
|
||||
*
|
||||
* ...
|
||||
*
|
||||
*/
|
||||
|
||||
tr.header td {
|
||||
background: #333;
|
||||
color: #fff;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
tr.header a {
|
||||
color: #fff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
tr.body td {
|
||||
background: #fff;
|
||||
padding: 20px;
|
||||
width: 35%;
|
||||
}
|
||||
|
||||
tr.footer td {
|
||||
background: #fff;
|
||||
border-top: 1px solid #999;
|
||||
padding: 10px 20px;
|
||||
}
|
||||
|
||||
/* ~ */
|
||||
|
||||
tr.fail td {
|
||||
background: #f55;
|
||||
}
|
||||
|
||||
tr.pass td {
|
||||
background: #5d5;
|
||||
}
|
||||
|
||||
/* ~ */
|
||||
|
||||
code {
|
||||
font-family: Source Code Pro, Monaco, monospace;
|
||||
}
|
||||
|
||||
pre {
|
||||
margin: 0;
|
||||
white-space: -moz-pre-wrap; /* Mozilla, supported since 1999 */
|
||||
white-space: -pre-wrap; /* Opera */
|
||||
white-space: -o-pre-wrap; /* Opera */
|
||||
white-space: pre-wrap; /* CSS3 - Text module (Candidate Recommendation) http://www.w3.org/TR/css3-text/#white-space */
|
||||
word-wrap: break-word; /* IE 5.5+ */
|
||||
}
|
||||
|
||||
span.tag {
|
||||
color: #b19;
|
||||
}
|
||||
|
@ -1,27 +0,0 @@
|
||||
<?php
|
||||
|
||||
$test = $_SERVER['QUERY_STRING'];
|
||||
|
||||
preg_match('/^\w+$/', $test) or die('illegal test name');
|
||||
|
||||
$md_file = $dir.$test.'.md';
|
||||
$mu_file = $dir.$test.'.html';
|
||||
|
||||
file_exists($md_file) or die("$md_file not found");
|
||||
file_exists($mu_file) or die("$mu_file not found");
|
||||
|
||||
$md = file_get_contents($md_file);
|
||||
|
||||
$expected_mu = file_get_contents($mu_file);
|
||||
$actual_mu = Parsedown::instance()->parse($md);
|
||||
|
||||
$result = $expected_mu === $actual_mu
|
||||
? 'pass'
|
||||
: 'fail';
|
||||
|
||||
$md = htmlentities($md, ENT_NOQUOTES);
|
||||
$expected_mu = htmlentities($expected_mu, ENT_NOQUOTES);
|
||||
$actual_mu = htmlentities($actual_mu, ENT_NOQUOTES);
|
||||
|
||||
$name = str_replace('_', ' ', $test);
|
||||
$name = ucwords($name);
|
@ -1,62 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<!-- (c) 2009 - 2013 Emanuil Rusev, All rights reserved. -->
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
|
||||
<head>
|
||||
|
||||
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
|
||||
|
||||
<link href="reset.css" rel="stylesheet" type="text/css" />
|
||||
<link href="test.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/prettify/r224/prettify.js" type="text/javascript"></script>
|
||||
<script src="http://code.jquery.com/jquery-2.0.0.min.js" type="text/javascript"></script>
|
||||
|
||||
<title><?= $name ?> « Parsedown Test</title>
|
||||
|
||||
</head>
|
||||
|
||||
<body onload="prettyPrint();">
|
||||
|
||||
<table style="width: 100%; height: 100%;">
|
||||
<tr class="<?= $result ?>">
|
||||
<td colspan="3"></td>
|
||||
</tr>
|
||||
<tr class="header">
|
||||
<td colspan="2"><a href="/">Parsedown PHP</a> » <a href=".">Tests</a> » <?= $name ?></td>
|
||||
<td style="text-align: right;">
|
||||
<form action="http://parsedown.org<?= $_SERVER['SERVER_NAME'] === 'parsedown.org.local' ? '.local' : '' ?>/explorer/" method="post">
|
||||
<input type="hidden" name="text" />
|
||||
<a id="explorer" href="">Open in Explorer</a>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="body" style="height: 100%; vertical-align: top;">
|
||||
<td style="background: #eee; width: 30%;">
|
||||
<pre id="md" style="word-wrap: break-word;"><?= $md ?></pre>
|
||||
</td>
|
||||
<td><pre class="prettyprint"><code><?= $expected_mu ?></code></pre></td>
|
||||
<td><pre class="prettyprint"><code><?= $actual_mu ?></code></pre></td>
|
||||
</tr>
|
||||
<tr class="footer">
|
||||
<td style="background: #eee;">Markdown</td>
|
||||
<td>Expected Markup</td>
|
||||
<td>Actual Markup</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
$('#explorer').click(function(e) {
|
||||
$('input[name=text]').val($('#md').text());
|
||||
$('form').submit();
|
||||
return false;
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
@ -1,2 +0,0 @@
|
||||
<h1>This is an h1</h1>
|
||||
<h2>This is an h2</h2>
|
@ -1,3 +0,0 @@
|
||||
# This is an h1
|
||||
|
||||
## This is an h2
|
@ -1,25 +0,0 @@
|
||||
<p>Here's a regular blockquote:</p>
|
||||
<blockquote>
|
||||
<p>This is a blockquote.</p>
|
||||
</blockquote>
|
||||
<p>Here's one with no space after the ">":</p>
|
||||
<blockquote>
|
||||
<p>This is a blockquote.</p>
|
||||
</blockquote>
|
||||
<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>
|
||||
<p>This is another paragraph.</p>
|
||||
</blockquote>
|
@ -1,24 +0,0 @@
|
||||
Here's a regular blockquote:
|
||||
|
||||
> This is a blockquote.
|
||||
|
||||
Here's one with no space after the ">":
|
||||
|
||||
>This is a blockquote.
|
||||
|
||||
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.
|
||||
>
|
||||
> This is another paragraph.
|
@ -1,9 +0,0 @@
|
||||
<p>Here's a regular code block:</p>
|
||||
<pre><code><?php
|
||||
|
||||
echo 'Hello World!';
|
||||
|
||||
?></code></pre>
|
||||
<p>Here's one that holds a list:</p>
|
||||
<pre><code>- list item
|
||||
- another list item</code></pre>
|
@ -1,13 +0,0 @@
|
||||
Here's a regular code block:
|
||||
|
||||
<?php
|
||||
|
||||
echo 'Hello World!';
|
||||
|
||||
?>
|
||||
|
||||
Here's one that holds a list:
|
||||
|
||||
- list item
|
||||
- another list item
|
||||
|
@ -1 +0,0 @@
|
||||
<p>This is a <code>code span</code>.</p>
|
@ -1 +0,0 @@
|
||||
This is a `code span`.
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user