From 1a7288517e4635f93d835e26793e1a0c209cbfaa Mon Sep 17 00:00:00 2001 From: Mark Qvist Date: Thu, 28 May 2026 14:37:14 +0200 Subject: [PATCH] Fixed link and mention scans happening inside code blocks --- nomadnet/ui/textui/Channels.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/nomadnet/ui/textui/Channels.py b/nomadnet/ui/textui/Channels.py index 05e67f6..24bba5b 100644 --- a/nomadnet/ui/textui/Channels.py +++ b/nomadnet/ui/textui/Channels.py @@ -136,10 +136,32 @@ def _scan_nick_mentions(text, own_nick): if nick.lower() != own_nick: yield m.start(), m.end(), f"nick_mention", nick +def _scan_code_blocks(text): + regions = [] + fence_re = re.compile(r'```[^\n]*\n.*?```', re.DOTALL) + for m in fence_re.finditer(text): regions.append((m.start(), m.end())) + + inline_re = re.compile(r'(? r_start: return True + return False + + spans = [(s, e, k, t) for s, e, k, t in spans if not overlaps_code(s, e)] + spans.sort(key=lambda s: s[0]) filtered = [] last_end = 0