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