2010-09-19 21:05:36 +02:00
|
|
|
<?php
|
|
|
|
|
2011-07-03 11:28:55 +02:00
|
|
|
namespace Knp\Bundle\MarkdownBundle\Twig\Extension;
|
2010-09-19 21:05:36 +02:00
|
|
|
|
2015-12-15 22:08:41 +01:00
|
|
|
use Knp\Bundle\MarkdownBundle\Parser\ParserManager;
|
2019-11-26 10:56:15 +01:00
|
|
|
use Twig\Extension\AbstractExtension;
|
|
|
|
use Twig\TwigFilter;
|
2010-09-19 21:05:36 +02:00
|
|
|
|
2019-11-26 10:56:15 +01:00
|
|
|
class MarkdownTwigExtension extends AbstractExtension
|
2010-09-19 21:05:36 +02:00
|
|
|
{
|
2015-12-16 16:54:17 +01:00
|
|
|
private $parserManager;
|
2010-09-19 21:05:36 +02:00
|
|
|
|
2015-12-15 22:08:41 +01:00
|
|
|
public function __construct(ParserManager $parserManager)
|
2010-09-19 21:05:36 +02:00
|
|
|
{
|
2015-12-15 22:08:41 +01:00
|
|
|
$this->parserManager = $parserManager;
|
2010-09-19 21:05:36 +02:00
|
|
|
}
|
|
|
|
|
2021-11-05 17:50:12 +01:00
|
|
|
public function getFilters(): array
|
2010-09-19 21:05:36 +02:00
|
|
|
{
|
|
|
|
return array(
|
2019-11-26 10:56:15 +01:00
|
|
|
new TwigFilter('markdown', array($this, 'markdown'), array('is_safe' => array('html'))),
|
2010-09-19 21:05:36 +02:00
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2021-11-05 17:50:12 +01:00
|
|
|
public function markdown($text, $parser = null): string
|
2010-09-19 21:05:36 +02:00
|
|
|
{
|
2015-12-15 22:08:41 +01:00
|
|
|
return $this->parserManager->transform($text, $parser);
|
2010-09-19 21:05:36 +02:00
|
|
|
}
|
|
|
|
|
2021-11-05 17:50:12 +01:00
|
|
|
public function getName(): string
|
2010-09-19 21:05:36 +02:00
|
|
|
{
|
|
|
|
return 'markdown';
|
|
|
|
}
|
|
|
|
}
|