mirror of
https://github.com/erusev/parsedown.git
synced 2024-09-20 03:51:29 +02:00
Add breaks configurable
This commit is contained in:
parent
fce09a702a
commit
b89bd0e3c2
@ -31,6 +31,7 @@
|
||||
<referencedMethod name="Erusev\Parsedown\Configurables\BlockTypes::settingMarked" />
|
||||
<referencedMethod name="Erusev\Parsedown\Configurables\BlockTypes::settingUnmarked" />
|
||||
<referencedMethod name="Erusev\Parsedown\Configurables\BlockTypes::removing" />
|
||||
<referencedMethod name="Erusev\Parsedown\Configurables\Breaks::enabled" />
|
||||
</errorLevel>
|
||||
</PossiblyUnusedMethod>
|
||||
</issueHandlers>
|
||||
|
@ -2,8 +2,12 @@
|
||||
|
||||
namespace Erusev\Parsedown\Components\Inlines;
|
||||
|
||||
use Erusev\Parsedown\AST\Handler;
|
||||
use Erusev\Parsedown\AST\StateRenderable;
|
||||
use Erusev\Parsedown\Components\Inline;
|
||||
use Erusev\Parsedown\Configurables\Breaks;
|
||||
use Erusev\Parsedown\Html\Renderables\Container;
|
||||
use Erusev\Parsedown\Html\Renderables\Element;
|
||||
use Erusev\Parsedown\Html\Renderables\Text;
|
||||
use Erusev\Parsedown\Parsedown;
|
||||
use Erusev\Parsedown\Parsing\Excerpt;
|
||||
@ -59,12 +63,24 @@ final class SoftBreak implements Inline
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Text
|
||||
* @return Handler<Text|Container>
|
||||
*/
|
||||
public function stateRenderable(Parsedown $_)
|
||||
{
|
||||
return new Handler(
|
||||
/** @return Text|Container */
|
||||
function (State $State) {
|
||||
if ($State->get(Breaks::class)->isEnabled()) {
|
||||
return new Container([
|
||||
Element::selfClosing('br', []),
|
||||
new Text("\n")
|
||||
]);
|
||||
}
|
||||
|
||||
return new Text("\n");
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Text
|
||||
|
10
src/Configurables/Breaks.php
Normal file
10
src/Configurables/Breaks.php
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace Erusev\Parsedown\Configurables;
|
||||
|
||||
use Erusev\Parsedown\Configurable;
|
||||
|
||||
final class Breaks implements Configurable
|
||||
{
|
||||
use BooleanConfigurable;
|
||||
}
|
@ -2,6 +2,7 @@
|
||||
|
||||
namespace Erusev\Parsedown\Tests;
|
||||
|
||||
use Erusev\Parsedown\Configurables\Breaks;
|
||||
use Erusev\Parsedown\Configurables\SafeMode;
|
||||
use Erusev\Parsedown\Configurables\StrictMode;
|
||||
use Erusev\Parsedown\Parsedown;
|
||||
@ -47,6 +48,7 @@ class ParsedownTest extends TestCase
|
||||
$Parsedown = new Parsedown(new State([
|
||||
new SafeMode(\substr($test, 0, 3) === 'xss'),
|
||||
new StrictMode(\substr($test, 0, 6) === 'strict'),
|
||||
new Breaks(\substr($test, 0, 14) === 'breaks_enabled'),
|
||||
]));
|
||||
|
||||
$actualMarkup = $Parsedown->text($markdown);
|
||||
|
2
tests/data/breaks_enabled.html
Normal file
2
tests/data/breaks_enabled.html
Normal file
@ -0,0 +1,2 @@
|
||||
<p>line<br />
|
||||
anotherline</p>
|
2
tests/data/breaks_enabled.md
Normal file
2
tests/data/breaks_enabled.md
Normal file
@ -0,0 +1,2 @@
|
||||
line
|
||||
anotherline
|
Loading…
Reference in New Issue
Block a user