Add direct # anchor links to all headings on index pages - #93
Conversation
Foundation for linkable headings: a small Liquid include renders a '#' permalink at the end of any heading given its id, and custom.css reveals it on hover/focus plus offsets :target jumps below the sticky nav. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Use the provider document slug as the canonical heading anchor and drop the now-redundant id from the wrapping box, eliminating duplicate ids for providers whose filename slug matches their title slug. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ides Anchor every heading rendered by the shared components used on the index/pricing/technology pages (slot tables, pricing slots, add-ons, run-1 showcase, silicon density, CTAs, countdown, section dividers, half-slot banner). Heading ids are namespaced where a component is included multiple times per page (per-slot pricing) or loops over data that can repeat, guaranteeing unique ids. Add site-level overrides of two theme partials so their headings are linkable too: layouts/header/page-title.html (the page <h1>) and pricing.html (free.html referral table). The live countdown timer digits and hidden expired-message headings are intentionally left unanchored: they are JS-driven widget internals, not navigable section headers, and would produce duplicate/empty ids. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
🚀 Preview Deployment Ready!
This preview will be automatically updated when you push new commits to this PR. Browse all previews: https://preview.wafer.space ⚡ Deployed to custom domain • Preview will be removed when PR is closed |
|
📋 Previous verification results (archived) Click to view archived verification results from 2026-06-06T06:46:13.000Z❌ Preview Site Verification FAILEDPreview Site Verification ReportPR: #93 1. Basic Connectivity ✅
2. Content Verification
3. Multi-Page Asset VerificationDiscovering all pages in the site...
4. Link and Asset Verification (muffet)Running comprehensive muffet validation...
Summary: 0 5. Performance Check
6. Mobile Responsiveness
Summary❌ Some verification checks failed 🔍 Automated verification • Run ID: 27055292244 • 2026-06-06T06:46:13.309Z ⏰ This verification result has been archived by Run ID: 27056093471 • A newer verification is available below |
- Remove the underline that appeared on the '#' permalink on hover/focus. - Stop anchoring the long 'display-3' subtitle <h3>s that immediately follow a section's <h2> (e.g. 'Your design. Your silicon. From $4 per die.', 'Get 1,000 custom silicon dies from just $4 per die'). These are decorative subtitles of the heading above them, not independent sections, so only the <h2> keeps the anchor. Real sub-headings separated from their <h2> by body content (e.g. free.html's Grants/Sponsorship) remain anchored. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
📋 Previous verification results (archived) Click to view archived verification results from 2026-06-06T07:24:53.000Z❌ Preview Site Verification FAILEDPreview Site Verification ReportPR: #93 1. Basic Connectivity ✅
2. Content Verification
3. Multi-Page Asset VerificationDiscovering all pages in the site...
4. Link and Asset Verification (muffet)Running comprehensive muffet validation...
Summary: 0 5. Performance Check
6. Mobile Responsiveness
Summary❌ Some verification checks failed 🔍 Automated verification • Run ID: 27056093471 • 2026-06-06T07:24:53.239Z ⏰ This verification result has been archived by Run ID: 27112557917 • A newer verification is available below |
|
📋 Previous verification results (archived) Click to view archived verification results from 2026-06-08T02:29:25.000Z❌ Preview Site Verification FAILEDPreview Site Verification ReportPR: #93 1. Basic Connectivity ✅
2. Content Verification
3. Multi-Page Asset VerificationDiscovering all pages in the site...
4. Link and Asset Verification (muffet)Running comprehensive muffet validation...
Summary: 0 5. Performance Check
6. Mobile Responsiveness
Summary❌ Some verification checks failed 🔍 Automated verification • Run ID: 27112557917 • 2026-06-08T02:29:24.566Z ⏰ This verification result has been archived by Run ID: 27113094853 • A newer verification is available below |
|
📋 Previous verification results (archived) Click to view archived verification results from 2026-06-08T02:49:21.000Z❌ Preview Site Verification FAILEDPreview Site Verification ReportPR: #93 1. Basic Connectivity ✅
2. Content Verification
3. Multi-Page Asset VerificationDiscovering all pages in the site...
4. Link and Asset Verification (muffet)Running comprehensive muffet validation...
Summary: 0 5. Performance Check
6. Mobile Responsiveness
Summary❌ Some verification checks failed 🔍 Automated verification • Run ID: 27113094853 • 2026-06-08T02:49:21.491Z ⏰ This verification result has been archived by Run ID: 27113133608 • A newer verification is available below |
|
📋 Previous verification results (archived) Click to view archived verification results from 2026-06-08T02:51:35.000Z❌ Preview Site Verification FAILEDPreview Site Verification ReportPR: #93 1. Basic Connectivity ✅
2. Content Verification
3. Multi-Page Asset VerificationDiscovering all pages in the site...
4. Link and Asset Verification (muffet)Running comprehensive muffet validation...
Summary: 0 5. Performance Check
6. Mobile Responsiveness
Summary❌ Some verification checks failed 🔍 Automated verification • Run ID: 27113133608 • 2026-06-08T02:51:34.705Z ⏰ This verification result has been archived by Run ID: 27124757969 • A newer verification is available below |
These external links are valid but cannot be validated by muffet from CI: - reddit.com: blocks datacenter IPs (returns 403 from GitHub Actions) - electronics-lab.com: blocks automated requests (403) - docs.google.com: spreadsheet #gid= anchors muffet cannot validate They appear across the news posts and fail preview-verification on every run. Exclude them alongside the existing known-flaky domains. This brings forward the user-approved exclusions from the closed PR #73 (commit 4528556), rebased onto current main. matrix.to is intentionally omitted here as it is already handled by PR #93. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
e7df256 to
b18ccfe
Compare
b18ccfe to
f4b77e3
Compare
|
| Status | Preview URL | Issue |
|---|---|---|
| 🟡 Partial | View Preview | Git commit hash verification failed - deployment may be outdated |
The preview has been deployed but content verification is incomplete. The site may still be propagating or there may be loading issues.
Manual verification recommended: https://preview.wafer.space/pr-93/
⚡ Deployed to custom domain • Preview will be removed when PR is closed
|
| Status | Preview URL | Issue |
|---|---|---|
| 🟡 Partial | View Preview | Git commit hash verification failed - deployment may be outdated |
The preview has been deployed but content verification is incomplete. The site may still be propagating or there may be loading issues.
Manual verification recommended: https://preview.wafer.space/pr-93/
⚡ Deployed to custom domain • Preview will be removed when PR is closed
❌ Preview Site Verification FAILEDPreview Site Verification ReportPR: #93 1. Basic Connectivity ✅
2. Content Verification
3. Multi-Page Asset VerificationDiscovering all pages in the site...
4. Link and Asset Verification (muffet)Running comprehensive muffet validation...
Summary: 0 5. Performance Check
6. Mobile Responsiveness
Summary❌ Some verification checks failed 🔍 Automated verification • Run ID: 27124757969 • 2026-06-08T08:25:20.435Z |
These external links are valid but cannot be validated by muffet from CI: - reddit.com: blocks datacenter IPs (returns 403 from GitHub Actions) - electronics-lab.com: blocks automated requests (403) - docs.google.com: spreadsheet #gid= anchors muffet cannot validate They appear across the news posts and fail preview-verification on every run. Exclude them alongside the existing known-flaky domains. This brings forward the user-approved exclusions from the closed PR #73 (commit 4528556), rebased onto current main. matrix.to is intentionally omitted here as it is already handled by PR #93. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Summary
Makes every heading on the index/content pages directly linkable via a URL fragment (
page.html#some-heading), as requested. Headings now render with a stableidand a hover-revealed#permalink — entirely server-side through Liquid templating, no JavaScript.How it works
_includes/components/heading-anchor.html— a tiny shared partial that renders the trailing#link for a heading, given itsid. Renders nothing for a blank id (safe behindslugify).assets/css/custom.css— styles the#(invisible atopacity:0, revealed on heading hover or keyboard focus) and adds:target { scroll-margin-top: 110px }so fragment jumps land below the sticky nav.idauthored in-source: literal slugs for static text,{{ … | slugify }}for dynamic/looped content (strip_htmlfirst where headings contain<br>/entities).Coverage
All headings across the content pages and the shared components they compose from:
index,about,faq,technology,free,design-help,priceplussection-divider,slot-comparison-table,pricing-2col-slot(×3/page),addons-section,run1-showcase,silicon-density,cta-design-help,countdown,half-slot-banner, and the provider partial. 211 heading anchors, verified zero duplicate or empty ids across all built pages.Two theme partials are overridden at the site level (the repo's documented override mechanism) so their headings are linkable too:
layouts/header/page-title.html— the page<h1>pricing.html— the referral table onfree.htmlUniqueness handling
forloop.index.section-divider, countdown "Deadlines", provider boxes) reuse/point at the existing id instead of duplicating it. Pre-existing anchors (#grants,#refer,#specs,#addons,#half-slots, …) are preserved.Intentionally skipped
The live countdown timer digits (
<h3 data-days>0</h3>, ×12) and hidden expired-message<h3>s — JS-driven widget internals, not navigable section headers, and would otherwise produce duplicate/empty ids. Global footerwidget-titlechrome is also left as-is (site-wide navigation, not page content).🤖 Generated with Claude Code