fix(wiki): exclude URL-shaped bibkeys from claim parsing
_parse_claims now skips matches where bibkey contains spaces or starts with "http", preventing Markdown hyperlinks like [text](https://...) from being misidentified as citations. Add two tests. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -228,6 +228,10 @@ def _parse_claims(markdown: str) -> list[Claim]:
|
|||||||
text = match.group("text").strip()
|
text = match.group("text").strip()
|
||||||
bibkey = match.group("bibkey").strip()
|
bibkey = match.group("bibkey").strip()
|
||||||
locator = (match.group("locator") or "").strip()
|
locator = (match.group("locator") or "").strip()
|
||||||
|
# Skip URL-shaped bibkeys ([text](https://...)) and multi-word bibkeys
|
||||||
|
# (real BibKeys never contain spaces or start with "http")
|
||||||
|
if " " in bibkey or bibkey.startswith("http"):
|
||||||
|
continue
|
||||||
if text and bibkey:
|
if text and bibkey:
|
||||||
claims.append(Claim(text=text, bibkey=bibkey, locator=locator))
|
claims.append(Claim(text=text, bibkey=bibkey, locator=locator))
|
||||||
return claims
|
return claims
|
||||||
|
|||||||
@@ -121,6 +121,20 @@ def test_parse_claims_multiple() -> None:
|
|||||||
assert len(claims) == 2
|
assert len(claims) == 2
|
||||||
|
|
||||||
|
|
||||||
|
def test_parse_claims_ignores_markdown_links() -> None:
|
||||||
|
"""Markdown hyperlinks like [text](https://example.com) are NOT parsed as claims."""
|
||||||
|
md = "See the [related work](https://example.com) for details."
|
||||||
|
claims = _parse_claims(md)
|
||||||
|
assert claims == []
|
||||||
|
|
||||||
|
|
||||||
|
def test_parse_claims_ignores_multi_word_bibkey() -> None:
|
||||||
|
"""Multi-word 'bibkeys' (spaces inside) are not treated as real citations."""
|
||||||
|
md = "Some text [not a bibkey here] and more."
|
||||||
|
claims = _parse_claims(md)
|
||||||
|
assert claims == []
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# _run_grounding_guard
|
# _run_grounding_guard
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user