Skip to content

Wire landingkit's link check, and fix the dead URL it found - #30

Merged
tannevaled merged 1 commit into
mainfrom
landingkit-links
Oct 30, 2026
Merged

tannevaled merged 1 commit into
mainfrom
landingkit-links

Conversation

@tannevaled

Copy link
Copy Markdown
Contributor

The landing already imports the landingkit module, so its design cannot drift — landingkit verify passes against go-fileshare.github.io, down to 48/48 background pixels in both themes. What it did not do is run either of the kit's checks, and the kit ships workflows/links.yml precisely because "a dead link on a landing page breaks nothing that complains".

Measured before wiring it, and it earned its place immediately

$ hugo --minify --destination ./public && landingkit links public
checking 129 distinct URLs
  FAIL 000  https://github
landingkit: 1 link(s) or image(s) do not resolve

The cause is more interesting than the symptom

The hero cards show a trimmed blurb — the first sentence, by design — split with:

{{ $first := index (findRE "^[^.]+\\.?" $plain 1) 0 }}

That ends at the first ., and a URL is full of them. Phase 8's blurb begins

measured against [ruby/spec](https://github.com/ruby/spec)'s …

so the card rendered the literal fragment [ruby/spec](https://github. — half a Markdown link, whose href resolved to nothing, live on the published page.

The fix reduces [text](url) to its text before the split. The card shows prose and never a link, so that is what it wanted anyway — and a sentence can no longer end inside a URL.

after: checking 128 distinct URLs    (exit 0)

And the figure in hugo.toml was thirty behind

The same card read 23,481 examples, dated 2026-10-04. The gate's BASELINE sums to 23,511.

copy figure why
layouts/index.html 23,511 ✓ conformancefigure reads it
layouts/_default/list.html 23,511 ✓ same
hugo.toml:74 23,481 ✗ the guard read only .md and .html

It drifted for 26 days under a green check — 0 disagree and 0 disagree over the part I can read print identically. go-embedded-ruby/docs#40 teaches that tool to read .toml; with it the whole site checks 5 claims instead of 4, all agreeing.

A follow-up bumps this repository's pin and widens its --root so the third copy is enforced rather than merely fixed.

Verified

actionlint clean
hugo --minify builds
landingkit links exit 0, 128 URLs
landingkit verify PASS — style block equal, 48/48 pixels light, 48/48 dark
conformancefigure --root . 5 claims, 0 disagree

🤖 Generated with Claude Code

The landing imports the landingkit module, so its design cannot drift. It ran
NEITHER of the kit's checks, and the kit ships `workflows/links.yml` precisely
because "a dead link on a landing page breaks nothing that complains".

MEASURED BEFORE WIRING IT, and it earned its place immediately: run by hand on
the built site, `landingkit links` reported 129 distinct URLs and one dead --

    FAIL 000  https://github

THE CAUSE, which is more interesting than the symptom. The hero cards show a
trimmed blurb: the first sentence, by design, split with

    {{ $first := index (findRE "^[^.]+\\.?" $plain 1) 0 }}

That ends at the first ".", and a URL is full of them. Phase 8's blurb begins
"measured against [ruby/spec](https://github.com/ruby/spec)'s …", so the card
rendered the literal fragment "[ruby/spec](https://github." -- a half Markdown
link whose href resolved to nothing, live on the published page.

The fix reduces [text](url) to its text BEFORE the split. The card shows prose
and never a link, so that is what it wanted anyway; and a sentence can no
longer end inside a URL. After it: 128 distinct URLs, every one resolving.

AND THE FIGURE IN hugo.toml WAS THIRTY BEHIND. The same card read "23,481
examples pass ... (2026-10-04)"; the gate's BASELINE sums to 23,511. The two
copies under layouts/ were correct, because conformancefigure reads them -- it
read only .md and .html, so the third copy, in params.phases[].blurb, drifted
freely for 26 days under a green check. That tool now reads .toml too
(go-embedded-ruby/docs#40), and with it the whole site checks 5 claims instead
of 4, all agreeing.

Verified: actionlint clean; hugo builds; `landingkit links` exit 0 over 128
URLs; `landingkit verify` still PASSES against go-fileshare.github.io,
including 48/48 background pixels in both themes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@tannevaled
tannevaled merged commit d6f4e2f into main Oct 30, 2026
3 checks passed
@tannevaled
tannevaled deleted the landingkit-links branch October 30, 2026 21:06
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.

1 participant