1
0
mirror of https://github.com/erusev/parsedown.git synced 2023-08-10 21:13:06 +03:00

Seperate handler delegation from AST

This also splits 'text' into 'text', 'elements', and
'element' to hopefully better communicate structure
This commit is contained in:
Aidan Woods
2018-03-21 02:32:01 +00:00
parent eb55e426b9
commit 098f24d189
3 changed files with 153 additions and 118 deletions

View File

@ -4,15 +4,15 @@ class UnsafeExtension extends Parsedown
{
protected function blockFencedCodeComplete($Block)
{
$text = $Block['element']['text']['text'];
unset($Block['element']['text']['text']);
$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']['text']['rawHtml'] = "<p>$text</p>";
$Block['element']['element']['rawHtml'] = "<p>$text</p>";
return $Block;
}
@ -23,8 +23,8 @@ class TrustDelegatedExtension extends Parsedown
{
protected function blockFencedCodeComplete($Block)
{
$text = $Block['element']['text']['text'];
unset($Block['element']['text']['text']);
$text = $Block['element']['element']['text'];
unset($Block['element']['element']['text']);
// WARNING: There is almost always a better way of doing things!
//
@ -32,8 +32,8 @@ class TrustDelegatedExtension extends Parsedown
// 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']['text']['rawHtml'] = "<p>$text</p>";
$Block['element']['text']['allowRawHtmlInSafeMode'] = true;
$Block['element']['element']['rawHtml'] = "<p>$text</p>";
$Block['element']['element']['allowRawHtmlInSafeMode'] = true;
return $Block;
}

View File

@ -1,30 +1,30 @@
<ul>
<li>li
<ul>
<li>li
<ul>
<li>li<ul>
<li>li<ul>
<li>li</li>
<li>li</li>
</ul></li>
</ul>
</li>
<li>li</li>
</ul></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 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>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<hr />
<ul>