vendor/twig/markdown-extra/DefaultMarkdown.php line 22

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of Twig.
  4.  *
  5.  * (c) Fabien Potencier
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace Twig\Extra\Markdown;
  11. use League\CommonMark\CommonMarkConverter;
  12. use Michelf\MarkdownExtra;
  13. use Parsedown;
  14. class DefaultMarkdown implements MarkdownInterface
  15. {
  16.     private $converter;
  17.     public function __construct()
  18.     {
  19.         if (class_exists(CommonMarkConverter::class)) {
  20.             $this->converter = new LeagueMarkdown();
  21.         } elseif (class_exists(MarkdownExtra::class)) {
  22.             $this->converter = new MichelfMarkdown();
  23.         } elseif (class_exists(Parsedown::class)) {
  24.             $this->converter = new ErusevMarkdown();
  25.         } else {
  26.             throw new \LogicException('You cannot use the "markdown_to_html" filter as no Markdown library is available; try running "composer require league/commonmark".');
  27.         }
  28.     }
  29.     public function convert(string $body): string
  30.     {
  31.         return $this->converter->convert($body);
  32.     }
  33. }