diff options
author | Frederic Guillot <fred@kanboard.net> | 2016-11-30 18:26:40 -0500 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2016-11-30 18:26:40 -0500 |
commit | 700e226ba8508641fc559d1d2ddd1fd00a1eb79c (patch) | |
tree | ec8bfbf02442f66f67ca29e70586833de4921bb8 | |
parent | 8588a8bda9d76eb1f98c8dca80d72ed9e016c7dc (diff) |
Fix link generation when user mention is followed by a punctuation mark
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | app/Core/Markdown.php | 2 | ||||
-rw-r--r-- | tests/units/Helper/TextHelperTest.php | 5 |
3 files changed, 10 insertions, 1 deletions
@@ -10,6 +10,10 @@ Breaking changes: * Rename command line tool `./kanboard` to `./cli` +Bug fixes: + +* Fix link generation when user mention is followed by a punctuation mark + Version 1.0.34 -------------- diff --git a/app/Core/Markdown.php b/app/Core/Markdown.php index b5abe5ed..b83a3ced 100644 --- a/app/Core/Markdown.php +++ b/app/Core/Markdown.php @@ -86,7 +86,7 @@ class Markdown extends Parsedown */ protected function inlineUserLink(array $Excerpt) { - if (! $this->isPublicLink && preg_match('/^@([^\s]+)/', $Excerpt['text'], $matches)) { + if (! $this->isPublicLink && preg_match('/^@([^\s,!.:?]+)/', $Excerpt['text'], $matches)) { $user_id = $this->container['userModel']->getIdByUsername($matches[1]); if (! empty($user_id)) { diff --git a/tests/units/Helper/TextHelperTest.php b/tests/units/Helper/TextHelperTest.php index c9447abb..9b1aa94f 100644 --- a/tests/units/Helper/TextHelperTest.php +++ b/tests/units/Helper/TextHelperTest.php @@ -48,6 +48,11 @@ class TextHelperTest extends Base { $h = new TextHelper($this->container); $this->assertEquals('<p>Text <a href="?controller=UserViewController&action=profile&user_id=1" class="user-mention-link">@admin</a> @notfound</p>', $h->markdown('Text @admin @notfound')); + $this->assertEquals('<p>Text <a href="?controller=UserViewController&action=profile&user_id=1" class="user-mention-link">@admin</a>,</p>', $h->markdown('Text @admin,')); + $this->assertEquals('<p>Text <a href="?controller=UserViewController&action=profile&user_id=1" class="user-mention-link">@admin</a>!</p>', $h->markdown('Text @admin!')); + $this->assertEquals('<p>Text <a href="?controller=UserViewController&action=profile&user_id=1" class="user-mention-link">@admin</a>? </p>', $h->markdown('Text @admin? ')); + $this->assertEquals('<p>Text <a href="?controller=UserViewController&action=profile&user_id=1" class="user-mention-link">@admin</a>.</p>', $h->markdown('Text @admin.')); + $this->assertEquals('<p>Text <a href="?controller=UserViewController&action=profile&user_id=1" class="user-mention-link">@admin</a>: test</p>', $h->markdown('Text @admin: test')); $this->assertEquals('<p>Text @admin @notfound</p>', $h->markdown('Text @admin @notfound', true)); } |