eratic / sites / io / src / pages / index.astro
130 words
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
---
import Base from '@eratic/core/layouts/Base.astro';
import EntryList from '@eratic/core/components/EntryList.astro';
import { allIssues, issuePath, issueTitle } from '../lib/entries';

const issues = await allIssues();

const listed = issues.map((issue) => ({
	path: issuePath(issue),
	title: issueTitle(issue),
	summary: issue.data.summary,
	pubDate: issue.data.pubDate,
	kicker: `${issue.data.links.length} thing${issue.data.links.length === 1 ? '' : 's'}`,
}));
---

<Base site="io" path="/">
	<header class="intro">
		<h1>io</h1>
		<p class="intro__text">
			What came in this week: read, watched, listened to. One issue, every
			week, with credit to whoever sent me there.
		</p>
	</header>

	<EntryList entries={listed} empty="The first issue goes out soon." />
</Base>

<style>
	.intro {
		margin-block: var(--space-xl) var(--space-2xl);
		display: flex;
		flex-direction: column;
		gap: var(--space-2xs);
	}

	.intro h1 {
		font-family: var(--font-prose);
		font-size: var(--step-4);
		font-weight: 600;
		line-height: 1.05;
		letter-spacing: -0.022em;
		font-optical-sizing: auto;
	}

	.intro__text {
		font-family: var(--font-prose);
		font-size: var(--step-1);
		color: var(--ink-muted);
		text-wrap: pretty;
		max-inline-size: var(--measure);
	}
</style>

static mirror of HEAD · about · clone: git clone https://git.makefuture.ro/eratic.git