# lychee external-link checker config (see .github/workflows/links.yml). # Only http(s) URLs are checked; relative/internal links are skipped via the # scheme filter and --root-dir resolution. Loopback and private addresses are # skipped too. max_retries = 3 retry_wait_time = 2 timeout = 20 # Treat these as success: OK, partial content, and rate-limited (transient). accept = [200, 206, 429] scheme = ["https", "http"] exclude_all_private = true # Known false positives (the URLs are valid; lychee just can't verify them at # check time): # - crates.io and npmjs.com return 403/404 to non-browser requests # (anti-scraping); the package pages are live in a browser. # - GitHub serves 404 for /stargazers and /network/members to anonymous clients # (anti-scraping). The README social-footer badges link there; the pages are # live in a browser. # - the CHANGELOG version-compare links point at the release tag that is created # *after* the bump is merged. ci.yml runs on push/PR (never on the tag), so the # tag never exists when lychee runs and the compare URL 404s. One pattern # covers every future version — no per-release exclude needed. exclude = [ 'crates\.io/crates/', 'www\.npmjs\.com/package/', 'github\.com/wickra-lib/wickra/compare/', 'github\.com/wickra-lib/wickra/stargazers', 'github\.com/wickra-lib/wickra/network/members', ]