From d1dddb1096ef298c34fe2ca5f000eaf110175b06 Mon Sep 17 00:00:00 2001 From: Grollicus <cccvgitlab.db5c7b60@grollmann.eu> Date: Wed, 25 Dec 2024 23:27:44 +0100 Subject: [PATCH] ignore mastodon / matrix handles --- src/core/markdown.py | 2 +- src/core/tests/markdown.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/core/markdown.py b/src/core/markdown.py index 16bd05b29..95246a86f 100644 --- a/src/core/markdown.py +++ b/src/core/markdown.py @@ -35,7 +35,7 @@ class PageLink(SpanToken): class ProfileLink(SpanToken): - pattern = re.compile(r'(?<!\S)@([-a-zA-Z0-9_]+)') + pattern = re.compile(r'(?<!\S)@([-a-zA-Z0-9_]+)(?=\s|$)') parse_inner = False def __init__(self, match): diff --git a/src/core/tests/markdown.py b/src/core/tests/markdown.py index 0ab5b990e..de008cd8a 100644 --- a/src/core/tests/markdown.py +++ b/src/core/tests/markdown.py @@ -90,6 +90,10 @@ class MarkdownTest(TestCase): self.assertEqual(render_markdown(conf, '@nonexisting_user'), '<p><a href="/en/user/nonexisting_user/" class="internal">@nonexisting_user</a></p>\n') self.assertEqual(render_markdown(conf, 'foo@bar'), '<p>foo@bar</p>\n') self.assertEqual(render_markdown(conf, '@"'), '<p>@"</p>\n') + # ignores element handles + self.assertEqual(render_markdown(conf, '@foo:bar.org'), '<p>@foo:bar.org</p>\n') + # ignores mastodon handles + self.assertEqual(render_markdown(conf, '@test@chaos.social'), '<p>@test@chaos.social</p>\n') self.assertEqual(render_markdown_ex(conf, '@existing_user').linked_user_slugs, {'existing_user'}) self.assertEqual(render_markdown_ex(conf, '@nonexisting_user').linked_user_slugs, {'nonexisting_user'}) -- GitLab