site: media + colocation — chunk 1/4 (code, configs, docs)
Code, configs, README, CHANGELOG, sources/log files, .claude. Subsequent chunks land the renamed media files.
This commit is contained in:
@@ -1,12 +1,14 @@
|
||||
---
|
||||
import { getSiteStats } from '../lib/entries';
|
||||
import SEO from '../components/SEO.astro';
|
||||
import EditConfirm from '../components/EditConfirm.astro';
|
||||
import type { OgImage } from '../components/SEO.astro';
|
||||
|
||||
interface Props {
|
||||
title: string;
|
||||
description?: string;
|
||||
subheader?: string;
|
||||
subheaderSubtitle?: string;
|
||||
subheaderVariant?: 'tagline' | 'headline';
|
||||
lastUpdated?: Date;
|
||||
canonicalPath?: string;
|
||||
@@ -24,6 +26,7 @@ const {
|
||||
title,
|
||||
description = 'A small log of delightful, unique things — products, apps, phenomena, oddities.',
|
||||
subheader,
|
||||
subheaderSubtitle,
|
||||
subheaderVariant = 'tagline',
|
||||
lastUpdated,
|
||||
canonicalPath,
|
||||
@@ -87,18 +90,21 @@ const year = new Date().getFullYear();
|
||||
<header class="masthead">
|
||||
<div class="masthead-row">
|
||||
<div class="masthead-stats">
|
||||
<span>{stats.total} entries</span>
|
||||
<span><a href="/posts/2026-05-03-why-this-exists/">founded {fmtShort.format(SITE_FOUNDED)}</a></span>
|
||||
</div>
|
||||
<a href="/" class="masthead-brand">{siteName}</a>
|
||||
<nav class="masthead-nav" aria-label="Primary">
|
||||
<a href="/about/">About</a>
|
||||
<a href="/blog/">Blog</a>
|
||||
<a href="/search/">Search</a>
|
||||
</nav>
|
||||
</div>
|
||||
{subheader && (
|
||||
<div class="subheader">
|
||||
<p class={`subheader-line${subheaderVariant === 'headline' ? ' subheader-headline' : ''}`}>{subheader}</p>
|
||||
{subheaderSubtitle && subheaderVariant === 'headline' && (
|
||||
<p class="subheader-subtitle">{subheaderSubtitle}</p>
|
||||
)}
|
||||
{updatedDate && subheaderVariant === 'headline' && (
|
||||
<p class="subheader-date">
|
||||
<time datetime={updatedDate.toISOString()}>{fmtLong.format(updatedDate)}</time>
|
||||
@@ -291,6 +297,14 @@ const year = new Date().getFullYear();
|
||||
letter-spacing: -0.01em;
|
||||
color: var(--fg);
|
||||
}
|
||||
.subheader-subtitle {
|
||||
margin: 0.35rem 0 0;
|
||||
font-family: ui-serif, Georgia, 'Iowan Old Style', 'Apple Garamond', 'Palatino Linotype', serif;
|
||||
font-style: italic;
|
||||
font-size: 1.05rem;
|
||||
line-height: 1.4;
|
||||
color: var(--muted);
|
||||
}
|
||||
.subheader-date {
|
||||
margin: 0.25rem 0 0;
|
||||
font-family: ui-sans-serif, system-ui, -apple-system, 'Helvetica Neue', sans-serif;
|
||||
@@ -403,5 +417,6 @@ const year = new Date().getFullYear();
|
||||
}
|
||||
hr { border: 0; border-top: 1px solid var(--rule); margin: 2rem 0; }
|
||||
</style>
|
||||
{import.meta.env.DEV && <EditConfirm />}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user