Skip to content

ci(links): resolve Docusaurus root-relative links in lychee - #732

Merged
Medformatik merged 1 commit into
mainfrom
claude/confident-volta-2tlyvq
Nov 1, 2026
Merged

Medformatik merged 1 commit into
mainfrom
claude/confident-volta-2tlyvq

Conversation

@Medformatik

@Medformatik Medformatik commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

What changed and why

The weekly link check reports 36 Cannot resolve root-relative link errors in #247. They come from docs/docs/developer/map-comparison-baseline.md, which links to /img/... static assets, and from docs/docs/overview/introduction.md, which links to /<section>/<page> doc routes. Docusaurus resolves both kinds of link, and its build already throws on broken internal links. Lychee had no root directory, so it couldn't resolve them.

  • .github/workflows/links.yml: sets --root-dir to docs/static and remaps doc-section routes (administration, developer, features, guides, install, overview, releases) to docs/docs/<section>/<page>, with --fallback-extensions md,mdx. Lychee now checks that these targets exist instead of erroring.
  • .lycheeignore: ignores the four OTP GraphQL endpoints listed in packages/otp-client/schema/NOTICE.md. They accept POST queries only, so a plain GET returns 405/500 by design.

Related work

Refs #247. This PR does not close the issue. Seven reports remain, and they look like upstream or transient problems, so I didn't ignore them:

  • docs.openweather.co.uk (2): the site's SSL certificate had expired.
  • EEA ImageServer: 502.
  • edeka.de (1) and digitransit.fi (2): 403, possibly bot blocking, which I could not confirm.
  • changesets.dev: timeout.

Verification

I ran lychee v0.24.2, built locally, in --offline mode, so these checks cover local links only:

  • The two affected docs files: 36 errors before the change, 0 after.
  • Negative check: a missing /img/... asset and a missing /overview/... page are both still reported as errors.
  • Every Markdown file in the repo, with the workflow's arguments: 0 errors.
  • .lycheeignore: lychee --dump confirms the four OTP endpoints are excluded and the digitransit links are still checked.
  • Workflow YAML: parses, and the folded args value is as intended.

Not performed: external link checks (this environment has no general outbound network) and a real run of the workflow on GitHub Actions. After merge, use the Link check workflow's workflow_dispatch trigger to confirm.

Release and upgrade impact

None. This only changes CI configuration.

@github-actions

github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

All contributors have signed the CLA. ✅
Posted by the CLA Assistant Lite bot.

The weekly link check reported 36 "Cannot resolve root-relative link"
errors for docs pages that link to /img/... static assets and
/<section>/<page> doc routes. Docusaurus resolves both (and its build
already throws on broken internal links), but lychee had no root dir.

Point --root-dir at docs/static and remap doc-section routes to
docs/docs/<section>/<page> with md/mdx fallback extensions, so lychee
now verifies those targets exist rather than erroring.

Also ignore the four OTP GraphQL endpoints in the schema NOTICE: they
accept POST queries only, so GET returns 405/500 by design.

Refs #247

Claude-Session: https://claude.ai/code/session_017DEL8C49cYr4sPqU7EJgCR
@Medformatik
Medformatik force-pushed the claude/confident-volta-2tlyvq branch from 4c88d9e to 89f4b6b Compare November 1, 2026 16:36
@Medformatik
Medformatik merged commit 8aa0949 into main Nov 1, 2026
24 checks passed
@Medformatik
Medformatik deleted the claude/confident-volta-2tlyvq branch November 1, 2026 16:52
@github-actions github-actions Bot locked and limited conversation to collaborators Nov 1, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant