Measured
uphold 1.22.0, rule kind that checks relative links resolve (link_targets in src/scan.rs). The link scanner skips fenced code blocks but not inline code spans. A generated Markdown page that prints a regular expression inside backticks, for example a JSON Schema pattern containing [2-9](\.\d+), is read as a Markdown link whose target is \.\d+, and the rule reports a missing file. Found by a consumer rendering schema pages with json-schema-for-humans 1.5.1; the pages carry no other relative link.
Why it matters
CommonMark gives a code span precedence over link syntax: text inside backticks is literal. A link check that reads inside a code span refuses correct documents, and the only remedy a consumer has is to exclude the files from the rule, which also removes the real links in them from the check. The consumer here had to add a files.exclude for its generated pages.
Done when
Measured
uphold 1.22.0, rule kind that checks relative links resolve (
link_targetsinsrc/scan.rs). The link scanner skips fenced code blocks but not inline code spans. A generated Markdown page that prints a regular expression inside backticks, for example a JSON Schema pattern containing[2-9](\.\d+), is read as a Markdown link whose target is\.\d+, and the rule reports a missing file. Found by a consumer rendering schema pages with json-schema-for-humans 1.5.1; the pages carry no other relative link.Why it matters
CommonMark gives a code span precedence over link syntax: text inside backticks is literal. A link check that reads inside a code span refuses correct documents, and the only remedy a consumer has is to exclude the files from the rule, which also removes the real links in them from the check. The consumer here had to add a
files.excludefor its generated pages.Done when