Files
superset2/docs/scripts
Evan Rusackas 56d1dae91e fix(docs): extend lint-docs-links to catch wrong-extension + missing-target
Previously the linter only flagged bare relative links (no .md/.mdx
extension). The Docusaurus build catches the other two classes
(`onBrokenMarkdownLinks: 'throw'`), but only after a multi-minute
compile. Now the source-level lint catches all three:

  bare              `[X](../foo)`            (skips file resolver entirely)
  missing-target    `[X](./gone.md)`         (target file doesn't exist)
  wrong-extension   `[X](./foo.md)` w/ .mdx  (the .md vs .mdx mismatch
                                              that broke the previous
                                              CI run on this branch)

Implementation:

- classifyLink() resolves the link target against the source file's
  directory. If it exists → ok. If not but the other extension does →
  wrong-extension (reports which extension is actually on disk). If
  neither exists → missing-target.
- Output groups findings by kind with category-specific explanations
  so the developer immediately knows whether to add an extension, fix
  one, or chase a real missing target.

Verified end-to-end by injecting one of each failure mode in turn
and confirming the linter reports the right file:line / category;
restoring the file always returns the lint to green.

Build-time `onBrokenMarkdownLinks: 'throw'` stays in place — defense
in depth. The lint just makes the same finding visible in seconds
rather than minutes.
2026-05-13 20:17:46 -07:00
..