docs: fix broken purchase and wiki links across all languages, add link-check CI - #58
Open
Chirag6722 wants to merge 1 commit into
Open
docs: fix broken purchase and wiki links across all languages, add link-check CI#58Chirag6722 wants to merge 1 commit into
Chirag6722 wants to merge 1 commit into
Conversation
Every link in every markdown file was checked (203 unique external URLs, 915 relative paths). Six classes of breakage, each repeated across the translated copies: - DM4310(V4) motor: seeedstudio p-6660 is 404 since the product was relisted. Now points at Damiao-4310-Actuator-Motor-p-6823, whose $120.00 price matches the BOM line. - AliExpress purchase link: pasted out of a Feishu sheet, so it pointed at Feishu's link-safety interstitial (now 404) and the paste duplicated part of the query string, closing the href attribute early. Replaced with the decoded destination. - IMU/gyroscope wiki link: no Sensor/IMU/ path exists on the wiki; the live category hub is Sensor_accelerometer. - Four Amazon links had no scheme, so markdown resolved them as relative paths under the repo and all 404'd. - Power-supply anchors used readme.md/#about-power-supply; the trailing slash turns a file reference into a directory reference. - Two shields.io badge URLs contained characters that need escaping (a literal space, and a raw emoji). Add .github/workflows/link-check.yml (lychee, SHA-pinned) on markdown pull requests and weekly, plus .lycheeignore for the marketplaces and social platforms that block CI runners outright. Closes Seeed-Projects#57 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #57
What this changes
Fixes every broken link I could find in the repository's markdown, in all five languages, and adds CI so the next one is caught by a check rather than by a user filing an issue (#3, #8, #13, #54 were all link fixes found by hand).
…/DIP-Servo-Motor-24V-120RPM-…-p-6660.html→ 404Damiao-4310-Actuator-Motor-p-6823.htmlreadme.md,_es,_fr,_jp"mid-URL that closed thehrefearlyhttps://de.aliexpress.com/item/1005012108314029.htmlREADME.md,_es,_Fr,_JPwiki.seeedstudio.com/Sensor/IMU/→ 404Sensor_accelerometer/[Amazon](amazon.com/…)— no scheme, resolved as a repo-relative pathhttps://www.amazon.com/…readme.md, RSREADME.md,README_zh.mdreadme.md/#about-power-supply— trailing slash makes it a directoryreadme.md#about-power-supplyREADME.md,_Fr,_JP,_zhbadge/Framework-Isaac Sim-…(literal space) andbadge/Documentation-📕-blue(raw emoji)%20/%F0%9F%93%95The DM4310 replacement is the same motor at the same price the BOM already states ($120.00/unit, 4 per arm) — it is the single link most likely to stop a build, so it is worth a maintainer's second look.
The CI part
.github/workflows/link-check.ymlruns lychee on pull requests touching**/*.mdand weekly on Monday. Notes on the configuration:--root-dir "$(pwd)"is required here — the READMEs link to repository-root paths like/hardware/…and/community/…, which otherwise resolve against the filesystem root.--accept 200,206,403,429: several stores answer datacentre IPs with 403/429. A delisted product still answers 404, which is what this job exists to catch..lycheeignoreexcludes hosts that block CI runners outright (Amazon, AliExpress, Taobao, Tmall, X, LinkedIn, Instagram, Kaggle, Discord invites). Without it the job would be permanently red and therefore ignored. That is 95 of the 203 external URLs; the remaining 108 — Seeed store pages, the Seeed wiki, GitHub repos, shields.io — are the ones that actually go stale in a way CI can detect.Anchor checking (
--include-fragments) is deliberately left off for now: heading anchors in the CJK and emoji-heavy documents are the most likely source of false positives, and I would rather this check start out trustworthy. Easy to add later.Verification
.lycheeignoreand the workflow's accept-list, reports 0 broken out of 108 checked external URLs and 0 broken out of 915 relative targets. That is the state the workflow should reproduce on its first run.Sensor_accelerometerreturns 200 with title "Sensor - Accelerometer"; both badge URLs return 200image/svg+xml.### About Power Supply,### 关于电源).actionlintv1.7.12 passes on the new workflow — exit 0, no findings.Not verified by a live run: GitHub does not register workflows on a fresh fork without enabling them through the Actions UI, so I could not execute the lychee job itself; the checks above are the closest equivalent I could run locally. The AliExpress destination in fix #2 is the decoded target of the wrapper URL — AliExpress blocks this environment, so I could not confirm the listing is still live, only that the link as written today is broken.
🤖 Generated with Claude Code