Link roundup posts from Shelf cards and keep long link lists short

Shelf game cards show the post about the game, as Library rows already
do. A make's chip prefers its own build log and says Blog for other
posts. Post chips and Connected pages count the links past the first
few, so a roundup linking a hundred items stays readable.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012aSbo2D1qP8cMFQCykf7kx
This commit is contained in:
Claude
2026-10-18 17:08:43 +00:00
parent b3cf6bd02e
commit 57721efbcd
10 changed files with 89 additions and 20 deletions
@@ -5,7 +5,6 @@
* blog's seal art stands in.
*/
import Button from "@gk/ui/components/Button.astro";
import Chip from "@gk/ui/components/Chip.astro";
import GiltCorners from "@gk/ui/components/GiltCorners.astro";
import Seal from "@gk/ui/components/Seal.astro";
import Star from "@gk/ui/components/Star.astro";
@@ -16,6 +15,7 @@ import TickScale from "@gk/ui/components/TickScale.astro";
import { filamentBanner } from "@gk/ui/components/seals.ts";
import { dateLine, nowStatuses, pageLinks, type Post } from "../../lib/blog.ts";
import { mediaSrc, type SiteIndex } from "../../lib/site.ts";
import PageChips from "./PageChips.astro";
interface Props {
post: Post;
@@ -62,7 +62,7 @@ const now = nowStatuses(s, post);
<h2 id="lead-title" class="title"><a href={href}>{post.title}</a></h2>
<span class="underline" aria-hidden="true"></span>
{post.data.summary && <p class="summary">{post.data.summary}</p>}
{links.length > 0 && <span class="chips">{links.map((l) => <Chip href={l.href}>{l.label}</Chip>)}</span>}
{links.length > 0 && <span class="chips"><PageChips links={links} max={4} /></span>}
<Button href={href} arrow class="go">{post.data.postType === "build log" ? "Read the build log" : "Read the post"}</Button>
</div>
<GiltCorners />