Skip to content

Add automated Markdown link checker workflow#508

Open
alok-108 wants to merge 6 commits into
eth-protocol-fellows:mainfrom
alok-108:add-link-checker-workflow
Open

Add automated Markdown link checker workflow#508
alok-108 wants to merge 6 commits into
eth-protocol-fellows:mainfrom
alok-108:add-link-checker-workflow

Conversation

@alok-108
Copy link
Copy Markdown
Contributor

@alok-108 alok-108 commented May 4, 2026

This PR adds a GitHub Actions workflow to automatically find broken links in Markdown files, as discussed in #295.

What it does

  • Runs when .md files are pushed to main or in a pull request – checks only changed files.
  • A weekly scheduled job checks all files.
  • Uses markdown-link-check with a custom config.

Config highlights

  • Retries failed links 3 times (handles temporary network issues).
  • Accepts HTTP 429 as “alive” to avoid rate‑limit false alarms.
  • Skips domains that often fail or rate‑limit: web.archive.org, yewtu.be, gnu.org, and GitHub issue/PR links.
  • Tested on a feature branch – broken links are caught, ignored links are properly skipped.

Closes #295

alok-108 and others added 6 commits May 5, 2026 01:59
Uses markdown-link-check with retries and ignore patterns

Ignores web.archive.org, yewtu.be, gnu.org, GitHub issue/PR links

Treats HTTP 429 as success to handle rate limits

Checks only modified files on push/PR; full check weekly

Closes eth-protocol-fellows#295
Corrected the text for the ignored link to fix a typo.
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 4, 2026

Hi @alok-108,

⚠️ Potential typos found in your pull request:

  • 📄 ./docs/wiki/research/history-expiry/history-expiry.md (line(s) 37,39):
    1. ❌ bitmask
  • 📄 ./docs/wiki/research/history-expiry/history-expiry.md (line(s) 37,39):
    1. ❌ bitmask
  • 📄 ./docs/wiki/CL/cl-networking.md (line(s) 251):
    1. ❌ decrypt

ℹ️ How to fix this error:

  1. If these are actual typos:

    • Open the files at the specified line numbers and fix them
  2. If these are names or one-off nouns:

    • Wrap them in <name> tags
    • Example: <name>Alex Pereira</name>
    • Use this for people's names or unique terms that appear rarely
  3. If these are valid terms:

    • Add them to wordlist.txt (one word per line)
    • Terms must be plain text without spaces/special chars
    • The list is case-insensitive
  4. If these are code terms:

    • Wrap them in backticks (`) in your markdown

ℹ️ Checking for typos locally

  1. Install aspell for your platform
  2. Navigate to project root and run:
for f in **/*.md ; do echo $f ; aspell --lang=en_US --mode=markdown --home-dir=. --personal=wordlist.txt --ignore-case=true --camel-case --add-sgml-skip nospellcheck list < $f | sort | uniq -c ; done

Learn more about wordlist format

@alok-108
Copy link
Copy Markdown
Contributor Author

alok-108 commented May 4, 2026

Hi @raxhvl @taxmeifyoucan! I've opened a PR for automated link validation (#295). It's tested on a feature branch and handles all discussed edge cases (web.archive, 429, etc.). Looking forward to your feedback! 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add automated link validation to GitHub workflow

1 participant