diff --git a/lib/src/utils/markdown.dart b/lib/src/utils/markdown.dart
index ac0f49e5..df55eabf 100644
--- a/lib/src/utils/markdown.dart
+++ b/lib/src/utils/markdown.dart
@@ -153,6 +153,11 @@ class PillSyntax extends InlineSyntax {
@override
bool onMatch(InlineParser parser, Match match) {
+ if (match.start > 0 &&
+ !RegExp(r'[\s.!?:;\(]').hasMatch(match.input[match.start - 1])) {
+ parser.addNode(Text(match[0]));
+ return true;
+ }
final identifier = match[1];
final element = Element.text('a', identifier);
element.attributes['href'] = 'https://matrix.to/#/${identifier}';
diff --git a/test/markdown_test.dart b/test/markdown_test.dart
index b2aecff1..d387e4fc 100644
--- a/test/markdown_test.dart
+++ b/test/markdown_test.dart
@@ -69,6 +69,8 @@ void main() {
'#fox:sorunome.de: you all are awesome');
expect(markdown('!blah:example.org'),
'!blah:example.org');
+ expect(markdown('https://matrix.to/#/#fox:sorunome.de'),
+ 'https://matrix.to/#/#fox:sorunome.de');
});
test('latex', () {
expect(markdown('meep \$\\frac{2}{3}\$'),