Add $singleLine param to Twig markdown parser

This allows you to parse just a single line of Markdown, i.e. the parsed output won't include a HTML paragraph element.
This commit is contained in:
Daniel Rudolf 2019-10-24 13:03:38 +02:00
parent be0812fb55
commit 23000af64e
No known key found for this signature in database
GPG Key ID: A061F02CD8DE4538
2 changed files with 10 additions and 7 deletions

View File

@ -1650,13 +1650,15 @@ class Pico
* @see Pico::substituteFileContent() * @see Pico::substituteFileContent()
* @see Pico::getFileContent() * @see Pico::getFileContent()
* *
* @param string $markdown Markdown contents of a page * @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) * @return string parsed contents (HTML)
*/ */
public function parseFileContent($markdown) public function parseFileContent($markdown, $singleLine = false)
{ {
return $this->getParsedown()->text($markdown); $markdownParser = $this->getParsedown();
return !$singleLine ? $markdownParser->text($markdown) : $markdownParser->line($markdown);
} }
/** /**

View File

@ -111,15 +111,16 @@ class PicoTwigExtension extends Twig_Extension
* @see Pico::substituteFileContent() * @see Pico::substituteFileContent()
* @see Pico::parseFileContent() * @see Pico::parseFileContent()
* *
* @param string $markdown markdown to parse * @param string $markdown markdown to parse
* @param array $meta meta data to use for %meta.*% replacement * @param array $meta meta data to use for %meta.*% replacement
* @param bool $singleLine whether to parse just a single line of markup
* *
* @return string parsed HTML * @return string parsed HTML
*/ */
public function markdownFilter($markdown, array $meta = array()) public function markdownFilter($markdown, array $meta = array(), $singleLine = false)
{ {
$markdown = $this->getPico()->substituteFileContent($markdown, $meta); $markdown = $this->getPico()->substituteFileContent($markdown, $meta);
return $this->getPico()->parseFileContent($markdown); return $this->getPico()->parseFileContent($markdown, $singleLine);
} }
/** /**