-
Notifications
You must be signed in to change notification settings - Fork 23
Description
Problem
Internal links in JSX pages are prone to formatting bugs that break navigation. For example, PR #155 fixed links in gsoc.js where relative paths like href="gsoc_ideas" and href="gsoc_ideas.html" were used instead of the correct absolute path href="/gsoc_ideas/".
The same class of issues still exists in other files (e.g. news.js has href="gsoc.html" and URLs with leading whitespace like href=" https://...").
Currently nothing catches these at development time because:
- The project has no linting setup
onBrokenLinksis set to"ignore"indocusaurus.config.js
Additionally, the project has both a yarn.lock and package-lock.json even though CI exclusively uses npm, which causes confusion.
Proposed Solution
-
Add ESLint with a custom
no-bad-internal-linksrule that flagshrefandtoattributes in JSX where:- Whitespace in URLs: leading/trailing spaces (e.g.
href=" https://...") - Relative internal links: missing leading
/(e.g.href="gsoc.html"should behref="/gsoc/") .htmlextensions: Docusaurus uses clean URLs, so.htmlshould not be used- Missing trailing slash: internal links should end with
/
- Whitespace in URLs: leading/trailing spaces (e.g.
-
Add a GitHub Actions workflow so the lint check runs on every PR and push to master.
-
Fix all existing lint violations across the codebase.
-
Remove
yarn.lockand standardize on npm, consistent with all CI workflows.