fix(core): ignore wikilinks in inline code - #1348
Merged
Merged
Conversation
Signed-off-by: buduoqiu <shenyaodong@hhu.edu.cn>
Member
Author
|
@codex review |
|
Codex Review: Didn't find any major issues. Nice work! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Supersedes #1337 by @yaodong-shen — their commit is cherry-picked here unchanged, with authorship and sign-off preserved, so the full CI matrix runs (fork PRs only get DCO/CLA/CodeQL). Will be rebase-merged so the contributor commit lands on
mainas-is.Fixes #1332.
Summary
A
[[wikilink]]inside an inline code span was parsed as a relation, so prose that quotes a relation line as an example minted a real graph edge (the reporter's retired hub note kept an inbound link from a backticked template example). Fenced blocks were already ignored; inline spans were not.MarkdownIt already tokenizes
code_inlinebefore Basic Memory's relation rule runs. The fix records the exact source ranges MarkdownIt classifies as inline code (by wrapping its ownbacktickrule, so CommonMark delimiter/escape semantics and its linear-time unmatched-run cache are reused rather than re-implemented), then masks only the[/]characters inside those spans before relation detection. Masking is position-preserving, so targets and context are still sliced from the original source text — escapes, formatting and trailing code in relation context are retained.Review history on #1337
Codex raised five P2s on the original PR (source preservation, escaped backticks, trailing code in explicit relations, quadratic rescans, code-span brackets inside outer wikilink targets); the author addressed each with a follow-up push and regression cases. The final push (
7caf720) never got a Codex re-review, so this PR will pick that up.Verification (local, this branch)
uv run pytest tests/markdown tests/services tests/importers -q --no-cov— 555 passed, 2 skippeduv run ruff check/ruff format --checkon the touched files — cleanuv run --all-extras ty check src tests test-int— clean🤖 Generated with Claude Code
https://claude.ai/code/session_017STCpbNsYjZgUdftxgEAZ4