feat: print-friendly layout + comment count on every post overview
Deploy / verify (push) Successful in 42s
Deploy / deploy (push) Successful in 1m4s

- Hides Header / HeaderOverlay / Footer / TopBanner / Breadcrumbs and
  the comment accordion when printing. Action toolbar already had
  `print:hidden`.
- Adds @media print rules in app.css: 1.5cm page margins, 11pt body,
  forced black-on-white, expand link URLs after anchor text inside
  articles, keep images and headings together at page breaks.
- PostCard now renders the count pill whenever a value is known (incl.
  zero); previously hidden for `count === 0`, so posts whose comments
  are still pending always looked empty.
- Extracts the bulk-fetch helper to `lib/comment-counts.ts`
  (`fetchCommentCounts` + `postSlugForComments`) and uses it from both
  `BlogOverview` and `PostOverviewBlock`. Homepage / any page with a
  post_overview block now shows the badges too — previously only the
  paginated /posts/* routes did.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Peter Meier
2026-04-28 15:29:15 +02:00
parent 6f14e4f150
commit 3d343822e9
7 changed files with 162 additions and 70 deletions
+12 -10
View File
@@ -165,14 +165,16 @@
{/if}
{#if data.commentPageId}
<Accordion
id="comments-section"
label={t(data.translations, T.post_comments)}
lazy
class="mt-6"
>
<div class="p-8 border border-zinc-200 rounded-lg">
<Comments pageId={data.commentPageId} />
</div>
</Accordion>
<div class="print:hidden">
<Accordion
id="comments-section"
label={t(data.translations, T.post_comments)}
lazy
class="mt-6"
>
<div class="p-8 border border-zinc-200 rounded-lg">
<Comments pageId={data.commentPageId} />
</div>
</Accordion>
</div>
{/if}