diff options
-rw-r--r-- | app/Core/Markdown.php | 13 | ||||
-rw-r--r-- | tests/units/Helper/TextHelperTest.php | 14 |
2 files changed, 27 insertions, 0 deletions
diff --git a/app/Core/Markdown.php b/app/Core/Markdown.php index b8fe618f..ae6adb5e 100644 --- a/app/Core/Markdown.php +++ b/app/Core/Markdown.php @@ -145,4 +145,17 @@ class Markdown extends Parsedown array('task_id' => $task_id) ); } + + /** + * Exclude from nesting task links and user mentions for links + * + * @param array $Excerpt + * @return array|null + */ + protected function inlineLink($Excerpt) + { + $Inline = parent::inlineLink($Excerpt); + array_push($Inline['element']['nonNestables'], 'TaskLink', 'UserLink'); + return $Inline; + } } diff --git a/tests/units/Helper/TextHelperTest.php b/tests/units/Helper/TextHelperTest.php index f8c0f845..9d862900 100644 --- a/tests/units/Helper/TextHelperTest.php +++ b/tests/units/Helper/TextHelperTest.php @@ -50,6 +50,13 @@ class TextHelperTest extends Base 'Check that: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454' ) ); + + $this->assertEquals( + '<p><a href="http://localhost">item #123 is here</a></p>', + $textHelper->markdown( + '[item #123 is here](http://localhost)' + ) + ); } public function testMarkdownUserLink() @@ -100,6 +107,13 @@ class TextHelperTest extends Base ); $this->assertEquals('<p>Text @admin @notfound</p>', $textHelper->markdown('Text @admin @notfound', true)); + + $this->assertEquals( + '<p><a href="http://localhost">mention @admin at localhost</a></p>', + $textHelper->markdown( + '[mention @admin at localhost](http://localhost)' + ) + ); } public function testFormatBytes() |