Avoid splitting links on italic text

This commit is contained in:
Edward Betts 2026-05-18 23:28:28 +01:00
parent 165acb8e2e
commit d1efae7745
2 changed files with 26 additions and 1 deletions

View file

@ -116,10 +116,15 @@ def find_cite_template_spans(text: str) -> list[tuple[int, int]]:
def parse_cite(text: str) -> typing.Iterator[tuple[str, str]]:
"""Parse citations yielding (type, chunk) tuples, skipping ref tags, cite templates, and external links."""
regions = [(m.start(), m.end()) for m in re_cite.finditer(text)]
link_spans = [(m.start(), m.end()) for m in re_link_in_text.finditer(text)]
regions.extend(find_cite_template_spans(text))
regions.extend((m.start(), m.end()) for m in re_no_param_template.finditer(text))
regions.extend((m.start(), m.end()) for m in re_external_link.finditer(text))
regions.extend((m.start(), m.end()) for m in re_italic.finditer(text))
regions.extend(
(m.start(), m.end())
for m in re_italic.finditer(text)
if not any(start <= m.start() and m.end() <= end for start, end in link_spans)
)
regions.extend((m.start(), m.end()) for m in re_bullet_with_url.finditer(text))
regions.sort()