Removed tests, added src
This commit is contained in:
parent
6598f3860c
commit
6917d7cc95
|
@ -1,71 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Test Parsedown against the CommonMark spec
|
|
||||||
*
|
|
||||||
* @link http://commonmark.org/ CommonMark
|
|
||||||
*/
|
|
||||||
class CommonMarkTestStrict extends PHPUnit_Framework_TestCase
|
|
||||||
{
|
|
||||||
const SPEC_URL = 'https://raw.githubusercontent.com/jgm/CommonMark/master/spec.txt';
|
|
||||||
|
|
||||||
protected $parsedown;
|
|
||||||
|
|
||||||
protected function setUp()
|
|
||||||
{
|
|
||||||
$this->parsedown = new TestParsedown();
|
|
||||||
$this->parsedown->setUrlsLinked(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @dataProvider data
|
|
||||||
* @param $id
|
|
||||||
* @param $section
|
|
||||||
* @param $markdown
|
|
||||||
* @param $expectedHtml
|
|
||||||
*/
|
|
||||||
public function testExample($id, $section, $markdown, $expectedHtml)
|
|
||||||
{
|
|
||||||
$actualHtml = $this->parsedown->text($markdown);
|
|
||||||
$this->assertEquals($expectedHtml, $actualHtml);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function data()
|
|
||||||
{
|
|
||||||
$spec = file_get_contents(self::SPEC_URL);
|
|
||||||
if ($spec === false) {
|
|
||||||
$this->fail('Unable to load CommonMark spec from ' . self::SPEC_URL);
|
|
||||||
}
|
|
||||||
|
|
||||||
$spec = str_replace("\r\n", "\n", $spec);
|
|
||||||
$spec = strstr($spec, '<!-- END TESTS -->', true);
|
|
||||||
|
|
||||||
$matches = array();
|
|
||||||
preg_match_all('/^`{32} example\n((?s).*?)\n\.\n(?:|((?s).*?)\n)`{32}$|^#{1,6} *(.*?)$/m', $spec, $matches, PREG_SET_ORDER);
|
|
||||||
|
|
||||||
$data = array();
|
|
||||||
$currentId = 0;
|
|
||||||
$currentSection = '';
|
|
||||||
foreach ($matches as $match) {
|
|
||||||
if (isset($match[3])) {
|
|
||||||
$currentSection = $match[3];
|
|
||||||
} else {
|
|
||||||
$currentId++;
|
|
||||||
$markdown = str_replace('→', "\t", $match[1]);
|
|
||||||
$expectedHtml = isset($match[2]) ? str_replace('→', "\t", $match[2]) : '';
|
|
||||||
|
|
||||||
$data[$currentId] = array(
|
|
||||||
'id' => $currentId,
|
|
||||||
'section' => $currentSection,
|
|
||||||
'markdown' => $markdown,
|
|
||||||
'expectedHtml' => $expectedHtml
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,63 +0,0 @@
|
||||||
<?php
|
|
||||||
require_once(__DIR__ . '/CommonMarkTestStrict.php');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Test Parsedown against the CommonMark spec, but less aggressive
|
|
||||||
*
|
|
||||||
* The resulting HTML markup is cleaned up before comparison, so examples
|
|
||||||
* which would normally fail due to actually invisible differences (e.g.
|
|
||||||
* superfluous whitespaces), don't fail. However, cleanup relies on block
|
|
||||||
* element detection. The detection doesn't work correctly when a element's
|
|
||||||
* `display` CSS property is manipulated. According to that this test is only
|
|
||||||
* a interim solution on Parsedown's way to full CommonMark compatibility.
|
|
||||||
*
|
|
||||||
* @link http://commonmark.org/ CommonMark
|
|
||||||
*/
|
|
||||||
class CommonMarkTestWeak extends CommonMarkTestStrict
|
|
||||||
{
|
|
||||||
protected $textLevelElementRegex;
|
|
||||||
|
|
||||||
protected function setUp()
|
|
||||||
{
|
|
||||||
parent::setUp();
|
|
||||||
|
|
||||||
$textLevelElements = $this->parsedown->getTextLevelElements();
|
|
||||||
array_walk($textLevelElements, function (&$element) {
|
|
||||||
$element = preg_quote($element, '/');
|
|
||||||
});
|
|
||||||
$this->textLevelElementRegex = '\b(?:' . implode('|', $textLevelElements) . ')\b';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @dataProvider data
|
|
||||||
* @param $id
|
|
||||||
* @param $section
|
|
||||||
* @param $markdown
|
|
||||||
* @param $expectedHtml
|
|
||||||
*/
|
|
||||||
public function testExample($id, $section, $markdown, $expectedHtml)
|
|
||||||
{
|
|
||||||
$expectedHtml = $this->cleanupHtml($expectedHtml);
|
|
||||||
|
|
||||||
$actualHtml = $this->parsedown->text($markdown);
|
|
||||||
$actualHtml = $this->cleanupHtml($actualHtml);
|
|
||||||
|
|
||||||
$this->assertEquals($expectedHtml, $actualHtml);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function cleanupHtml($markup)
|
|
||||||
{
|
|
||||||
// invisible whitespaces at the beginning and end of block elements
|
|
||||||
// however, whitespaces at the beginning of <pre> elements do matter
|
|
||||||
$markup = preg_replace(
|
|
||||||
array(
|
|
||||||
'/(<(?!(?:' . $this->textLevelElementRegex . '|\bpre\b))\w+\b[^>]*>(?:<' . $this->textLevelElementRegex . '[^>]*>)*)\s+/s',
|
|
||||||
'/\s+((?:<\/' . $this->textLevelElementRegex . '>)*<\/(?!' . $this->textLevelElementRegex . ')\w+\b>)/s'
|
|
||||||
),
|
|
||||||
'$1',
|
|
||||||
$markup
|
|
||||||
);
|
|
||||||
|
|
||||||
return $markup;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,199 +0,0 @@
|
||||||
<?php
|
|
||||||
require 'SampleExtensions.php';
|
|
||||||
|
|
||||||
use PHPUnit\Framework\TestCase;
|
|
||||||
|
|
||||||
class ParsedownTest extends TestCase
|
|
||||||
{
|
|
||||||
final function __construct($name = null, array $data = array(), $dataName = '')
|
|
||||||
{
|
|
||||||
$this->dirs = $this->initDirs();
|
|
||||||
$this->Parsedown = $this->initParsedown();
|
|
||||||
|
|
||||||
parent::__construct($name, $data, $dataName);
|
|
||||||
}
|
|
||||||
|
|
||||||
private $dirs;
|
|
||||||
protected $Parsedown;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
protected function initDirs()
|
|
||||||
{
|
|
||||||
$dirs []= dirname(__FILE__).'/data/';
|
|
||||||
|
|
||||||
return $dirs;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return Parsedown
|
|
||||||
*/
|
|
||||||
protected function initParsedown()
|
|
||||||
{
|
|
||||||
$Parsedown = new TestParsedown();
|
|
||||||
|
|
||||||
return $Parsedown;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @dataProvider data
|
|
||||||
* @param $test
|
|
||||||
* @param $dir
|
|
||||||
*/
|
|
||||||
function test_($test, $dir)
|
|
||||||
{
|
|
||||||
$markdown = file_get_contents($dir . $test . '.md');
|
|
||||||
|
|
||||||
$expectedMarkup = file_get_contents($dir . $test . '.html');
|
|
||||||
|
|
||||||
$expectedMarkup = str_replace("\r\n", "\n", $expectedMarkup);
|
|
||||||
$expectedMarkup = str_replace("\r", "\n", $expectedMarkup);
|
|
||||||
|
|
||||||
$this->Parsedown->setSafeMode(substr($test, 0, 3) === 'xss');
|
|
||||||
$this->Parsedown->setStrictMode(substr($test, 0, 6) === 'strict');
|
|
||||||
|
|
||||||
$actualMarkup = $this->Parsedown->text($markdown);
|
|
||||||
|
|
||||||
$this->assertEquals($expectedMarkup, $actualMarkup);
|
|
||||||
}
|
|
||||||
|
|
||||||
function testRawHtml()
|
|
||||||
{
|
|
||||||
$markdown = "```php\nfoobar\n```";
|
|
||||||
$expectedMarkup = '<pre><code class="language-php"><p>foobar</p></code></pre>';
|
|
||||||
$expectedSafeMarkup = '<pre><code class="language-php"><p>foobar</p></code></pre>';
|
|
||||||
|
|
||||||
$unsafeExtension = new UnsafeExtension;
|
|
||||||
$actualMarkup = $unsafeExtension->text($markdown);
|
|
||||||
|
|
||||||
$this->assertEquals($expectedMarkup, $actualMarkup);
|
|
||||||
|
|
||||||
$unsafeExtension->setSafeMode(true);
|
|
||||||
$actualSafeMarkup = $unsafeExtension->text($markdown);
|
|
||||||
|
|
||||||
$this->assertEquals($expectedSafeMarkup, $actualSafeMarkup);
|
|
||||||
}
|
|
||||||
|
|
||||||
function testTrustDelegatedRawHtml()
|
|
||||||
{
|
|
||||||
$markdown = "```php\nfoobar\n```";
|
|
||||||
$expectedMarkup = '<pre><code class="language-php"><p>foobar</p></code></pre>';
|
|
||||||
$expectedSafeMarkup = $expectedMarkup;
|
|
||||||
|
|
||||||
$unsafeExtension = new TrustDelegatedExtension;
|
|
||||||
$actualMarkup = $unsafeExtension->text($markdown);
|
|
||||||
|
|
||||||
$this->assertEquals($expectedMarkup, $actualMarkup);
|
|
||||||
|
|
||||||
$unsafeExtension->setSafeMode(true);
|
|
||||||
$actualSafeMarkup = $unsafeExtension->text($markdown);
|
|
||||||
|
|
||||||
$this->assertEquals($expectedSafeMarkup, $actualSafeMarkup);
|
|
||||||
}
|
|
||||||
|
|
||||||
function data()
|
|
||||||
{
|
|
||||||
$data = array();
|
|
||||||
|
|
||||||
foreach ($this->dirs as $dir)
|
|
||||||
{
|
|
||||||
$Folder = new DirectoryIterator($dir);
|
|
||||||
|
|
||||||
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($dir . $basename . '.html'))
|
|
||||||
{
|
|
||||||
$data []= array($basename, $dir);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_no_markup()
|
|
||||||
{
|
|
||||||
$markdownWithHtml = <<<MARKDOWN_WITH_MARKUP
|
|
||||||
<div>_content_</div>
|
|
||||||
|
|
||||||
sparse:
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<div class="inner">
|
|
||||||
_content_
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
paragraph
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
p {
|
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
comment
|
|
||||||
|
|
||||||
<!-- html comment -->
|
|
||||||
MARKDOWN_WITH_MARKUP;
|
|
||||||
|
|
||||||
$expectedHtml = <<<EXPECTED_HTML
|
|
||||||
<p><div><em>content</em></div></p>
|
|
||||||
<p>sparse:</p>
|
|
||||||
<p><div>
|
|
||||||
<div class="inner">
|
|
||||||
<em>content</em>
|
|
||||||
</div>
|
|
||||||
</div></p>
|
|
||||||
<p>paragraph</p>
|
|
||||||
<p><style type="text/css">
|
|
||||||
p {
|
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
</style></p>
|
|
||||||
<p>comment</p>
|
|
||||||
<p><!-- html comment --></p>
|
|
||||||
EXPECTED_HTML;
|
|
||||||
|
|
||||||
$parsedownWithNoMarkup = new TestParsedown();
|
|
||||||
$parsedownWithNoMarkup->setMarkupEscaped(true);
|
|
||||||
$this->assertEquals($expectedHtml, $parsedownWithNoMarkup->text($markdownWithHtml));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testLateStaticBinding()
|
|
||||||
{
|
|
||||||
$parsedown = Parsedown::instance();
|
|
||||||
$this->assertInstanceOf('Parsedown', $parsedown);
|
|
||||||
|
|
||||||
// After instance is already called on Parsedown
|
|
||||||
// subsequent calls with the same arguments return the same instance
|
|
||||||
$sameParsedown = TestParsedown::instance();
|
|
||||||
$this->assertInstanceOf('Parsedown', $sameParsedown);
|
|
||||||
$this->assertSame($parsedown, $sameParsedown);
|
|
||||||
|
|
||||||
$testParsedown = TestParsedown::instance('test late static binding');
|
|
||||||
$this->assertInstanceOf('TestParsedown', $testParsedown);
|
|
||||||
|
|
||||||
$sameInstanceAgain = TestParsedown::instance('test late static binding');
|
|
||||||
$this->assertSame($testParsedown, $sameInstanceAgain);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,40 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
class UnsafeExtension extends Parsedown
|
|
||||||
{
|
|
||||||
protected function blockFencedCodeComplete($Block)
|
|
||||||
{
|
|
||||||
$text = $Block['element']['element']['text'];
|
|
||||||
unset($Block['element']['element']['text']);
|
|
||||||
|
|
||||||
// WARNING: There is almost always a better way of doing things!
|
|
||||||
//
|
|
||||||
// This example is one of them, unsafe behaviour is NOT needed here.
|
|
||||||
// Only use this if you trust the input and have no idea what
|
|
||||||
// the output HTML will look like (e.g. using an external parser).
|
|
||||||
$Block['element']['element']['rawHtml'] = "<p>$text</p>";
|
|
||||||
|
|
||||||
return $Block;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class TrustDelegatedExtension extends Parsedown
|
|
||||||
{
|
|
||||||
protected function blockFencedCodeComplete($Block)
|
|
||||||
{
|
|
||||||
$text = $Block['element']['element']['text'];
|
|
||||||
unset($Block['element']['element']['text']);
|
|
||||||
|
|
||||||
// WARNING: There is almost always a better way of doing things!
|
|
||||||
//
|
|
||||||
// This behaviour is NOT needed in the demonstrated case.
|
|
||||||
// Only use this if you are sure that the result being added into
|
|
||||||
// rawHtml is safe.
|
|
||||||
// (e.g. using an external parser with escaping capabilities).
|
|
||||||
$Block['element']['element']['rawHtml'] = "<p>$text</p>";
|
|
||||||
$Block['element']['element']['allowRawHtmlInSafeMode'] = true;
|
|
||||||
|
|
||||||
return $Block;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
class TestParsedown extends Parsedown
|
|
||||||
{
|
|
||||||
public function getTextLevelElements()
|
|
||||||
{
|
|
||||||
return $this->textLevelElements;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
<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>
|
|
|
@ -1,4 +0,0 @@
|
||||||
| header 1 | header 2 |
|
|
||||||
| -------- | -------- |
|
|
||||||
| cell 1.1 | cell 1.2 |
|
|
||||||
| cell 2.1 | cell 2.2 |
|
|
|
@ -1,21 +0,0 @@
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th style="text-align: left;">header 1</th>
|
|
||||||
<th style="text-align: center;">header 2</th>
|
|
||||||
<th style="text-align: right;">header 2</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left;">cell 1.1</td>
|
|
||||||
<td style="text-align: center;">cell 1.2</td>
|
|
||||||
<td style="text-align: right;">cell 1.3</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left;">cell 2.1</td>
|
|
||||||
<td style="text-align: center;">cell 2.2</td>
|
|
||||||
<td style="text-align: right;">cell 2.3</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
|
@ -1,4 +0,0 @@
|
||||||
| header 1 | header 2 | header 2 |
|
|
||||||
| :------- | :------: | -------: |
|
|
||||||
| cell 1.1 | cell 1.2 | cell 1.3 |
|
|
||||||
| cell 2.1 | cell 2.2 | cell 2.3 |
|
|
|
@ -1,13 +0,0 @@
|
||||||
<h1>h1</h1>
|
|
||||||
<h2>h2</h2>
|
|
||||||
<h3>h3</h3>
|
|
||||||
<h4>h4</h4>
|
|
||||||
<h5>h5</h5>
|
|
||||||
<h6>h6</h6>
|
|
||||||
<p>####### not a heading</p>
|
|
||||||
<h1>closed h1</h1>
|
|
||||||
<h1></h1>
|
|
||||||
<h2></h2>
|
|
||||||
<h1># of levels</h1>
|
|
||||||
<h1># of levels #</h1>
|
|
||||||
<h1>heading</h1>
|
|
|
@ -1,25 +0,0 @@
|
||||||
# h1
|
|
||||||
|
|
||||||
## h2
|
|
||||||
|
|
||||||
### h3
|
|
||||||
|
|
||||||
#### h4
|
|
||||||
|
|
||||||
##### h5
|
|
||||||
|
|
||||||
###### h6
|
|
||||||
|
|
||||||
####### not a heading
|
|
||||||
|
|
||||||
# closed h1 #
|
|
||||||
|
|
||||||
#
|
|
||||||
|
|
||||||
##
|
|
||||||
|
|
||||||
# # of levels
|
|
||||||
|
|
||||||
# # of levels # #
|
|
||||||
|
|
||||||
#heading
|
|
|
@ -1 +0,0 @@
|
||||||
<p><a href="http://example.com">http://example.com</a></p>
|
|
|
@ -1 +0,0 @@
|
||||||
<http://example.com>
|
|
|
@ -1,12 +0,0 @@
|
||||||
<div>_content_</div>
|
|
||||||
<p>paragraph</p>
|
|
||||||
<div>
|
|
||||||
<div class="inner">
|
|
||||||
_content_
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<style type="text/css">
|
|
||||||
p {color: #789;}
|
|
||||||
</style>
|
|
||||||
<div>
|
|
||||||
<a href="/">home</a></div>
|
|
|
@ -1,16 +0,0 @@
|
||||||
<div>_content_</div>
|
|
||||||
|
|
||||||
paragraph
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<div class="inner">
|
|
||||||
_content_
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
p {color: #789;}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<a href="/">home</a></div>
|
|
|
@ -1,13 +0,0 @@
|
||||||
<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>
|
|
||||||
<hr />
|
|
||||||
<pre><code>foo
|
|
||||||
|
|
||||||
|
|
||||||
bar</code></pre>
|
|
|
@ -1,17 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
$message = 'Hello World!';
|
|
||||||
echo $message;
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
> not a quote
|
|
||||||
- not a list item
|
|
||||||
[not a reference]: http://foo.com
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
foo
|
|
||||||
|
|
||||||
|
|
||||||
bar
|
|
|
@ -1,6 +0,0 @@
|
||||||
<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>
|
|
|
@ -1,11 +0,0 @@
|
||||||
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`
|
|
|
@ -1,9 +0,0 @@
|
||||||
<blockquote>
|
|
||||||
<h2>header</h2>
|
|
||||||
<p>paragraph</p>
|
|
||||||
<ul>
|
|
||||||
<li>li</li>
|
|
||||||
</ul>
|
|
||||||
<hr />
|
|
||||||
<p>paragraph</p>
|
|
||||||
</blockquote>
|
|
|
@ -1,10 +0,0 @@
|
||||||
> header
|
|
||||||
> ------
|
|
||||||
>
|
|
||||||
> paragraph
|
|
||||||
>
|
|
||||||
> - li
|
|
||||||
>
|
|
||||||
> ---
|
|
||||||
>
|
|
||||||
> paragraph
|
|
|
@ -1,2 +0,0 @@
|
||||||
<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>
|
|
|
@ -1,4 +0,0 @@
|
||||||
_`code`_ __`code`__
|
|
||||||
|
|
||||||
*`code`**`code`**`code`*
|
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>paragraph</p>
|
|
||||||
<p>paragraph</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>paragraph</p>
|
|
||||||
<blockquote>
|
|
||||||
<p>quote</p>
|
|
||||||
</blockquote>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
|
@ -1,7 +0,0 @@
|
||||||
- paragraph
|
|
||||||
|
|
||||||
paragraph
|
|
||||||
|
|
||||||
- paragraph
|
|
||||||
|
|
||||||
> quote
|
|
|
@ -1,40 +0,0 @@
|
||||||
<ul>
|
|
||||||
<li>li<ul>
|
|
||||||
<li>li<ul>
|
|
||||||
<li>li</li>
|
|
||||||
<li>li</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>li</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>li</li>
|
|
||||||
</ul>
|
|
||||||
<hr />
|
|
||||||
<ul>
|
|
||||||
<li>level 1<ul>
|
|
||||||
<li>level 2<ul>
|
|
||||||
<li>level 3<ul>
|
|
||||||
<li>level 4<ul>
|
|
||||||
<li>level 5</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<hr />
|
|
||||||
<ul>
|
|
||||||
<li>a</li>
|
|
||||||
<li>b</li>
|
|
||||||
<li>c</li>
|
|
||||||
<li>d</li>
|
|
||||||
<li>e</li>
|
|
||||||
<li>f</li>
|
|
||||||
<li>g</li>
|
|
||||||
<li>h</li>
|
|
||||||
<li>i</li>
|
|
||||||
</ul>
|
|
|
@ -1,26 +0,0 @@
|
||||||
- li
|
|
||||||
- li
|
|
||||||
- li
|
|
||||||
- li
|
|
||||||
- li
|
|
||||||
- li
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- level 1
|
|
||||||
- level 2
|
|
||||||
- level 3
|
|
||||||
- level 4
|
|
||||||
- level 5
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- a
|
|
||||||
- b
|
|
||||||
- c
|
|
||||||
- d
|
|
||||||
- e
|
|
||||||
- f
|
|
||||||
- g
|
|
||||||
- h
|
|
||||||
- i
|
|
|
@ -1,8 +0,0 @@
|
||||||
<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>
|
|
|
@ -1,15 +0,0 @@
|
||||||
___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,2 +0,0 @@
|
||||||
<p>my email is <a href="mailto:me@example.com">me@example.com</a></p>
|
|
||||||
<p>html tags shouldn't start an email autolink <strong>first.last@example.com</strong></p>
|
|
|
@ -1,3 +0,0 @@
|
||||||
my email is <me@example.com>
|
|
||||||
|
|
||||||
html tags shouldn't start an email autolink <strong>first.last@example.com</strong>
|
|
|
@ -1,8 +0,0 @@
|
||||||
<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 +0,0 @@
|
||||||
_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
|
|
|
@ -1,6 +0,0 @@
|
||||||
<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>
|
|
||||||
<p><em>one_two</em> <strong>one_two</strong></p>
|
|
||||||
<p><em>one*two</em> <strong>one*two</strong></p>
|
|
|
@ -1,11 +0,0 @@
|
||||||
escaped \*emphasis\*.
|
|
||||||
|
|
||||||
`escaped \*emphasis\* in a code span`
|
|
||||||
|
|
||||||
escaped \*emphasis\* in a code block
|
|
||||||
|
|
||||||
\\ \` \* \_ \{ \} \[ \] \( \) \> \# \+ \- \. \!
|
|
||||||
|
|
||||||
_one\_two_ __one\_two__
|
|
||||||
|
|
||||||
*one\*two* **one\*two**
|
|
|
@ -1,18 +0,0 @@
|
||||||
<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>
|
|
||||||
<pre><code class="language-c#">echo 'language identifier with non words';</code></pre>
|
|
||||||
<pre><code class="language-html+php"><?php
|
|
||||||
echo "Hello World";
|
|
||||||
?>
|
|
||||||
<a href="http://auraphp.com" >Aura Project</a></code></pre>
|
|
||||||
<pre><code>the following isn't quite enough to close
|
|
||||||
```
|
|
||||||
still a fenced code block</code></pre>
|
|
||||||
<pre><code>foo
|
|
||||||
|
|
||||||
|
|
||||||
bar</code></pre>
|
|
|
@ -1,38 +0,0 @@
|
||||||
```
|
|
||||||
<?php
|
|
||||||
|
|
||||||
$message = 'fenced code block';
|
|
||||||
echo $message;
|
|
||||||
```
|
|
||||||
|
|
||||||
~~~
|
|
||||||
tilde
|
|
||||||
~~~
|
|
||||||
|
|
||||||
```php
|
|
||||||
echo 'language identifier';
|
|
||||||
```
|
|
||||||
|
|
||||||
```c#
|
|
||||||
echo 'language identifier with non words';
|
|
||||||
```
|
|
||||||
|
|
||||||
```html+php
|
|
||||||
<?php
|
|
||||||
echo "Hello World";
|
|
||||||
?>
|
|
||||||
<a href="http://auraphp.com" >Aura Project</a>
|
|
||||||
```
|
|
||||||
|
|
||||||
````
|
|
||||||
the following isn't quite enough to close
|
|
||||||
```
|
|
||||||
still a fenced code block
|
|
||||||
````
|
|
||||||
|
|
||||||
```
|
|
||||||
foo
|
|
||||||
|
|
||||||
|
|
||||||
bar
|
|
||||||
```
|
|
|
@ -1,5 +0,0 @@
|
||||||
<hr />
|
|
||||||
<hr />
|
|
||||||
<hr />
|
|
||||||
<hr />
|
|
||||||
<hr />
|
|
|
@ -1,9 +0,0 @@
|
||||||
---
|
|
||||||
|
|
||||||
- - -
|
|
||||||
|
|
||||||
- - -
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
___
|
|
|
@ -1,11 +0,0 @@
|
||||||
<!-- single line -->
|
|
||||||
<p>paragraph</p>
|
|
||||||
<!--
|
|
||||||
multiline -->
|
|
||||||
<p>paragraph</p>
|
|
||||||
<!-- sss -->abc
|
|
||||||
<ul>
|
|
||||||
<li>abcd</li>
|
|
||||||
<li>bbbb</li>
|
|
||||||
<li>cccc</li>
|
|
||||||
</ul>
|
|
|
@ -1,14 +0,0 @@
|
||||||
<!-- single line -->
|
|
||||||
|
|
||||||
paragraph
|
|
||||||
|
|
||||||
<!--
|
|
||||||
multiline -->
|
|
||||||
|
|
||||||
paragraph
|
|
||||||
|
|
||||||
<!-- sss -->abc
|
|
||||||
|
|
||||||
* abcd
|
|
||||||
* bbbb
|
|
||||||
* cccc
|
|
|
@ -1 +0,0 @@
|
||||||
<p>& © {</p>
|
|
|
@ -1 +0,0 @@
|
||||||
& © {
|
|
|
@ -1,2 +0,0 @@
|
||||||
<p><img src="/md.png" alt="Markdown Logo" /></p>
|
|
||||||
<p>![missing reference]</p>
|
|
|
@ -1,5 +0,0 @@
|
||||||
![Markdown Logo][image]
|
|
||||||
|
|
||||||
[image]: /md.png
|
|
||||||
|
|
||||||
![missing reference]
|
|
|
@ -1,2 +0,0 @@
|
||||||
<p><img src="/md.png" alt="alt" title="title" /></p>
|
|
||||||
<p><img src="/md.png" alt="blank title" title="" /></p>
|
|
|
@ -1,3 +0,0 @@
|
||||||
![alt](/md.png "title")
|
|
||||||
|
|
||||||
![blank title](/md.png "")
|
|
|
@ -1,4 +0,0 @@
|
||||||
<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">implicit</a> reference link followed by <a href="http://cnn.com">another</a></p>
|
|
||||||
<p>an <a href="http://example.com" title="Example">explicit</a> reference link with a title</p>
|
|
|
@ -1,13 +0,0 @@
|
||||||
an [implicit] reference link
|
|
||||||
|
|
||||||
[implicit]: http://example.com
|
|
||||||
|
|
||||||
an [implicit][] reference link with an empty link definition
|
|
||||||
|
|
||||||
an [implicit][] reference link followed by [another][]
|
|
||||||
|
|
||||||
[another]: http://cnn.com
|
|
||||||
|
|
||||||
an [explicit][example] reference link with a title
|
|
||||||
|
|
||||||
[example]: http://example.com "Example"
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,6 +0,0 @@
|
||||||
<p><a href="http://example.com" title="Title">single quotes</a></p>
|
|
||||||
<p><a href="http://example.com" title="Title">double quotes</a></p>
|
|
||||||
<p><a href="http://example.com" title="">single quotes blank</a></p>
|
|
||||||
<p><a href="http://example.com" title="">double quotes blank</a></p>
|
|
||||||
<p><a href="http://example.com" title="2 Words">space</a></p>
|
|
||||||
<p><a href="http://example.com/url-(parentheses)" title="Title">parentheses</a></p>
|
|
|
@ -1,11 +0,0 @@
|
||||||
[single quotes](http://example.com 'Title')
|
|
||||||
|
|
||||||
[double quotes](http://example.com "Title")
|
|
||||||
|
|
||||||
[single quotes blank](http://example.com '')
|
|
||||||
|
|
||||||
[double quotes blank](http://example.com "")
|
|
||||||
|
|
||||||
[space](http://example.com "2 Words")
|
|
||||||
|
|
||||||
[parentheses](http://example.com/url-(parentheses) "Title")
|
|
|
@ -1 +0,0 @@
|
||||||
<p><a href="http://example.com" title="Example">single quotes</a> and <a href="http://example.com" title="Example">double quotes</a></p>
|
|
|
@ -1 +0,0 @@
|
||||||
[single quotes](http://example.com 'Example') and [double quotes](http://example.com "Example")
|
|
|
@ -1,8 +0,0 @@
|
||||||
<blockquote>
|
|
||||||
<p>quote
|
|
||||||
the rest of it</p>
|
|
||||||
</blockquote>
|
|
||||||
<blockquote>
|
|
||||||
<p>another paragraph
|
|
||||||
the rest of it</p>
|
|
||||||
</blockquote>
|
|
|
@ -1,5 +0,0 @@
|
||||||
> quote
|
|
||||||
the rest of it
|
|
||||||
|
|
||||||
> another paragraph
|
|
||||||
the rest of it
|
|
|
@ -1,4 +0,0 @@
|
||||||
<ul>
|
|
||||||
<li>li
|
|
||||||
the rest of it</li>
|
|
||||||
</ul>
|
|
|
@ -1,2 +0,0 @@
|
||||||
- li
|
|
||||||
the rest of it
|
|
|
@ -1,2 +0,0 @@
|
||||||
<p>line<br />
|
|
||||||
line</p>
|
|
|
@ -1,2 +0,0 @@
|
||||||
line
|
|
||||||
line
|
|
|
@ -1,3 +0,0 @@
|
||||||
<div>Markup</div>
|
|
||||||
_No markdown_ without blank line for **strict** compliance with CommonMark.
|
|
||||||
<p><strong>Markdown</strong></p>
|
|
|
@ -1,4 +0,0 @@
|
||||||
<div>Markup</div>
|
|
||||||
_No markdown_ without blank line for **strict** compliance with CommonMark.
|
|
||||||
|
|
||||||
**Markdown**
|
|
|
@ -1,4 +0,0 @@
|
||||||
<div>One markup on
|
|
||||||
two lines</div>
|
|
||||||
_No markdown_
|
|
||||||
<p><strong>Markdown</strong></p>
|
|
|
@ -1,5 +0,0 @@
|
||||||
<div>One markup on
|
|
||||||
two lines</div>
|
|
||||||
_No markdown_
|
|
||||||
|
|
||||||
**Markdown**
|
|
|
@ -1,3 +0,0 @@
|
||||||
<div><p>Stripped markup</p></div>
|
|
||||||
_No markdown_
|
|
||||||
<p><strong>Markdown</strong></p>
|
|
|
@ -1,4 +0,0 @@
|
||||||
<div><p>Stripped markup</p></div>
|
|
||||||
_No markdown_
|
|
||||||
|
|
||||||
**Markdown**
|
|
|
@ -1,3 +0,0 @@
|
||||||
<div>First markup</div><p>and second markup on the same line.</p>
|
|
||||||
_No markdown_
|
|
||||||
<p><strong>Markdown</strong></p>
|
|
|
@ -1,4 +0,0 @@
|
||||||
<div>First markup</div><p>and second markup on the same line.</p>
|
|
||||||
_No markdown_
|
|
||||||
|
|
||||||
**Markdown**
|
|
|
@ -1,4 +0,0 @@
|
||||||
<div>First markup</div><p>and partial markup
|
|
||||||
on two lines.</p>
|
|
||||||
_No markdown_
|
|
||||||
<p><strong>Markdown</strong></p>
|
|
|
@ -1,5 +0,0 @@
|
||||||
<div>First markup</div><p>and partial markup
|
|
||||||
on two lines.</p>
|
|
||||||
_No markdown_
|
|
||||||
|
|
||||||
**Markdown**
|
|
|
@ -1,4 +0,0 @@
|
||||||
<div><p>Stripped markup
|
|
||||||
on two lines</p></div>
|
|
||||||
_No markdown_
|
|
||||||
<p><strong>Markdown</strong></p>
|
|
|
@ -1,5 +0,0 @@
|
||||||
<div><p>Stripped markup
|
|
||||||
on two lines</p></div>
|
|
||||||
_No markdown_
|
|
||||||
|
|
||||||
**Markdown**
|
|
|
@ -1,7 +0,0 @@
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>li</p>
|
|
||||||
<p>line
|
|
||||||
line</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
|
@ -1,4 +0,0 @@
|
||||||
- li
|
|
||||||
|
|
||||||
line
|
|
||||||
line
|
|
|
@ -1,10 +0,0 @@
|
||||||
<ol>
|
|
||||||
<li>
|
|
||||||
<p>One
|
|
||||||
First body copy</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>Two
|
|
||||||
Last body copy</p>
|
|
||||||
</li>
|
|
||||||
</ol>
|
|
|
@ -1,5 +0,0 @@
|
||||||
1. One
|
|
||||||
First body copy
|
|
||||||
|
|
||||||
2. Two
|
|
||||||
Last body copy
|
|
|
@ -1,10 +0,0 @@
|
||||||
<div>
|
|
||||||
_parent_
|
|
||||||
<div>
|
|
||||||
_child_
|
|
||||||
</div>
|
|
||||||
<pre>
|
|
||||||
_adopted child_
|
|
||||||
</pre>
|
|
||||||
</div>
|
|
||||||
<p><em>outside</em></p>
|
|
|
@ -1,11 +0,0 @@
|
||||||
<div>
|
|
||||||
_parent_
|
|
||||||
<div>
|
|
||||||
_child_
|
|
||||||
</div>
|
|
||||||
<pre>
|
|
||||||
_adopted child_
|
|
||||||
</pre>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
_outside_
|
|
|
@ -1,16 +0,0 @@
|
||||||
<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 start="123">
|
|
||||||
<li>one</li>
|
|
||||||
</ol>
|
|
||||||
<p>foo 1. the following should not start a list
|
|
||||||
100.<br />
|
|
||||||
200. </p>
|
|
|
@ -1,15 +0,0 @@
|
||||||
1. one
|
|
||||||
2. two
|
|
||||||
|
|
||||||
repeating numbers:
|
|
||||||
|
|
||||||
1. one
|
|
||||||
1. two
|
|
||||||
|
|
||||||
large numbers:
|
|
||||||
|
|
||||||
123. one
|
|
||||||
|
|
||||||
foo 1. the following should not start a list
|
|
||||||
100.
|
|
||||||
200.
|
|
|
@ -1,14 +0,0 @@
|
||||||
<p>paragraph</p>
|
|
||||||
<ul>
|
|
||||||
<li>li</li>
|
|
||||||
<li>li</li>
|
|
||||||
</ul>
|
|
||||||
<p>paragraph</p>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>li</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>li</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
|
@ -1,9 +0,0 @@
|
||||||
paragraph
|
|
||||||
- li
|
|
||||||
- li
|
|
||||||
|
|
||||||
paragraph
|
|
||||||
|
|
||||||
* li
|
|
||||||
|
|
||||||
* li
|
|
|
@ -1,2 +0,0 @@
|
||||||
<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>
|
|
|
@ -1,6 +0,0 @@
|
||||||
[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
|
|
|
@ -1,12 +0,0 @@
|
||||||
<hr>
|
|
||||||
<p>paragraph</p>
|
|
||||||
<hr/>
|
|
||||||
<p>paragraph</p>
|
|
||||||
<hr />
|
|
||||||
<p>paragraph</p>
|
|
||||||
<hr class="foo" id="bar" />
|
|
||||||
<p>paragraph</p>
|
|
||||||
<hr class="foo" id="bar"/>
|
|
||||||
<p>paragraph</p>
|
|
||||||
<hr class="foo" id="bar" >
|
|
||||||
<p>paragraph</p>
|
|
|
@ -1,18 +0,0 @@
|
||||||
<hr>
|
|
||||||
|
|
||||||
paragraph
|
|
||||||
<hr/>
|
|
||||||
|
|
||||||
paragraph
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
paragraph
|
|
||||||
<hr class="foo" id="bar" />
|
|
||||||
|
|
||||||
paragraph
|
|
||||||
<hr class="foo" id="bar"/>
|
|
||||||
|
|
||||||
paragraph
|
|
||||||
<hr class="foo" id="bar" >
|
|
||||||
|
|
||||||
paragraph
|
|
|
@ -1,9 +0,0 @@
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>li</p>
|
|
||||||
<ul>
|
|
||||||
<li>li</li>
|
|
||||||
<li>li</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
|
@ -1,4 +0,0 @@
|
||||||
- li
|
|
||||||
|
|
||||||
- li
|
|
||||||
- li
|
|
|
@ -1,5 +0,0 @@
|
||||||
<h1>h1</h1>
|
|
||||||
<h2>h2</h2>
|
|
||||||
<h2>single character</h2>
|
|
||||||
<p>not a header</p>
|
|
||||||
<hr />
|
|
|
@ -1,12 +0,0 @@
|
||||||
h1
|
|
||||||
==
|
|
||||||
|
|
||||||
h2
|
|
||||||
--
|
|
||||||
|
|
||||||
single character
|
|
||||||
-
|
|
||||||
|
|
||||||
not a header
|
|
||||||
|
|
||||||
------------
|
|
|
@ -1,12 +0,0 @@
|
||||||
<h1>trailing space</h1>
|
|
||||||
<h2>trailing space</h2>
|
|
||||||
<h1>leading and trailing space</h1>
|
|
||||||
<h2>leading and trailing space</h2>
|
|
||||||
<h1>1 leading space</h1>
|
|
||||||
<h2>1 leading space</h2>
|
|
||||||
<h1>3 leading spaces</h1>
|
|
||||||
<h2>3 leading spaces</h2>
|
|
||||||
<p>too many leading spaces
|
|
||||||
==</p>
|
|
||||||
<p>too many leading spaces
|
|
||||||
--</p>
|
|
|
@ -1,29 +0,0 @@
|
||||||
trailing space
|
|
||||||
==
|
|
||||||
|
|
||||||
trailing space
|
|
||||||
--
|
|
||||||
|
|
||||||
leading and trailing space
|
|
||||||
==
|
|
||||||
|
|
||||||
leading and trailing space
|
|
||||||
--
|
|
||||||
|
|
||||||
1 leading space
|
|
||||||
==
|
|
||||||
|
|
||||||
1 leading space
|
|
||||||
--
|
|
||||||
|
|
||||||
3 leading spaces
|
|
||||||
==
|
|
||||||
|
|
||||||
3 leading spaces
|
|
||||||
--
|
|
||||||
|
|
||||||
too many leading spaces
|
|
||||||
==
|
|
||||||
|
|
||||||
too many leading spaces
|
|
||||||
--
|
|
|
@ -1,26 +0,0 @@
|
||||||
<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>
|
|
||||||
<hr />
|
|
||||||
<blockquote>
|
|
||||||
<blockquote>
|
|
||||||
<blockquote>
|
|
||||||
<p>Info 1 text</p>
|
|
||||||
</blockquote>
|
|
||||||
</blockquote>
|
|
||||||
</blockquote>
|
|
||||||
<blockquote>
|
|
||||||
<blockquote>
|
|
||||||
<blockquote>
|
|
||||||
<p>Info 2 text</p>
|
|
||||||
</blockquote>
|
|
||||||
</blockquote>
|
|
||||||
</blockquote>
|
|
|
@ -1,13 +0,0 @@
|
||||||
> quote
|
|
||||||
|
|
||||||
indented:
|
|
||||||
> quote
|
|
||||||
|
|
||||||
no space after `>`:
|
|
||||||
>quote
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
>>> Info 1 text
|
|
||||||
|
|
||||||
>>> Info 2 text
|
|
|
@ -1,75 +0,0 @@
|
||||||
<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 style="text-align: left;">header 1</th>
|
|
||||||
<th>header 2</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left;">cell 1.1</td>
|
|
||||||
<td>cell 1.2</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left;">cell 2.1</td>
|
|
||||||
<td>cell 2.2</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<hr />
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th style="text-align: left;">header 1</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left;">cell 1.1</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left;">cell 2.1</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<hr />
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>header 1</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>cell 1.1</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>cell 2.1</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<hr />
|
|
||||||
<p>Not a table, we haven't ended the paragraph:
|
|
||||||
header 1 | header 2
|
|
||||||
-------- | --------
|
|
||||||
cell 1.1 | cell 1.2
|
|
||||||
cell 2.1 | cell 2.2</p>
|
|
|
@ -1,33 +0,0 @@
|
||||||
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
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
header 1
|
|
||||||
:-------
|
|
||||||
cell 1.1
|
|
||||||
cell 2.1
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
header 1
|
|
||||||
-------|
|
|
||||||
cell 1.1
|
|
||||||
cell 2.1
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Not a table, we haven't ended the paragraph:
|
|
||||||
header 1 | header 2
|
|
||||||
-------- | --------
|
|
||||||
cell 1.1 | cell 1.2
|
|
||||||
cell 2.1 | cell 2.2
|
|
|
@ -1,5 +0,0 @@
|
||||||
<p>an <b>important</b> <a href=''>link</a></p>
|
|
||||||
<p>broken<br/>
|
|
||||||
line</p>
|
|
||||||
<p><b>inline tag</b> at the beginning</p>
|
|
||||||
<p><span><a href="http://example.com">http://example.com</a></span></p>
|
|
|
@ -1,8 +0,0 @@
|
||||||
an <b>important</b> <a href=''>link</a>
|
|
||||||
|
|
||||||
broken<br/>
|
|
||||||
line
|
|
||||||
|
|
||||||
<b>inline tag</b> at the beginning
|
|
||||||
|
|
||||||
<span>http://example.com</span>
|
|
|
@ -1,11 +0,0 @@
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<p>li</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>li</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<p>li</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue