Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .github/workflows/links.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,21 @@ jobs:
- name: Validate HTML (html-validate)
run: npm run lint-html

- name: Strip standard.site link tags before link check
# The spec-required <link rel="site.standard.*" href="at://…"> tags (one
# per post, plus the homepage publication tag) carry AT Protocol URIs.
# lychee can't parse the at:// scheme — the colons in did:plc:… read as an
# invalid port — so it emits a hard parse error that no --exclude,
# --scheme, --remap, or .lycheeignore rule can suppress (they all run
# after URL parsing). These tags are verification infrastructure, not
# content links, so we drop them from this throwaway build before
# checking. Production output is unaffected: links.yml builds its own
# dist-astro and never deploys it. Runs after lint-html so the real
# markup is validated first.
run: |
find dist-astro -name '*.html' -print0 \
| xargs -0 sed -i -E 's#<link[^>]*rel="site\.standard\.(document|publication)"[^>]*>##g'

- name: Restore lychee cache
uses: actions/cache@v5
with:
Expand Down
9 changes: 5 additions & 4 deletions .lycheeignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,11 @@
^https?://127\.0\.0\.1
^https?://example\.(com|org|net)

# AT Protocol URIs (at://did:plc:.../...) — emitted as standard.site
# rel="site.standard.document"/"site.standard.publication" link tags. The
# at:// scheme isn't resolvable over HTTP, so lychee can't (and shouldn't) check it.
^at://
# Note: standard.site rel="site.standard.document"/"site.standard.publication"
# link tags carry at:// AT Protocol URIs that lychee can't parse (the colons in
# did:plc:… read as an invalid port), so it errors before any ignore rule applies.
# A regex here can't suppress them; the links.yml "Strip standard.site link tags"
# step removes those tags from the throwaway build before lychee runs instead.

# Intentionally-broken demo links in posts that document 404 behavior.
# Pattern matches both raw root-relative form and the file:// form lychee
Expand Down
Loading