diff --git a/composer.json b/composer.json index b231861..6246aa6 100644 --- a/composer.json +++ b/composer.json @@ -35,8 +35,8 @@ "ext-mbstring": "*", "twig/twig": "^2.12", "symfony/yaml" : "^3.4", - "erusev/parsedown": "1.7.4", - "erusev/parsedown-extra": "0.8.1" + "erusev/parsedown": "^2.0.0-beta-1", + "erusev/parsedown-extra": "^2.0.0-beta-1" }, "suggest": { "picocms/pico-theme": "Pico requires a theme to actually display the contents of your website. This is Pico's official default theme.", diff --git a/lib/Pico.php b/lib/Pico.php index d3036d5..0bab820 100644 --- a/lib/Pico.php +++ b/lib/Pico.php @@ -42,6 +42,12 @@ * @license http://opensource.org/licenses/MIT The MIT License * @version 3.0 */ + +use Erusev\Parsedown\Configurables\Breaks; +use Erusev\Parsedown\Parsedown; +use Erusev\Parsedown\State; +use Erusev\ParsedownExtra\ParsedownExtra; + class Pico { /** @@ -1561,12 +1567,13 @@ class Pico public function getParsedown() { if ($this->parsedown === null) { - $className = $this->config['content_config']['extra'] ? 'ParsedownExtra' : 'Parsedown'; - $this->parsedown = new $className(); - - $this->parsedown->setBreaksEnabled((bool) $this->config['content_config']['breaks']); - $this->parsedown->setMarkupEscaped((bool) $this->config['content_config']['escape']); - $this->parsedown->setUrlsLinked((bool) $this->config['content_config']['auto_urls']); + $state = new State([ + new Breaks((bool) $this->config['content_config']['breaks']) + ]); + if ($this->config['content_config']['extra']){ + $state = new ParsedownExtra($state); + } + $this->parsedown = new Parsedown($state); $this->triggerEvent('onParsedownRegistered', array(&$this->parsedown)); } @@ -1666,14 +1673,13 @@ class Pico * @see Pico::getFileContent() * * @param string $markdown Markdown contents of a page - * @param bool $singleLine whether to parse just a single line of markup * * @return string parsed contents (HTML) */ - public function parseFileContent($markdown, $singleLine = false) + public function parseFileContent($markdown) { $markdownParser = $this->getParsedown(); - return !$singleLine ? @$markdownParser->text($markdown) : @$markdownParser->line($markdown); + return @$markdownParser->toHtml($markdown); } /**