alunduil / alunduil/blog.alunduil.com

The whole post history loads in one page at /archives, with /posts as the recent feed

Offen
#580 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement
Vorherrschende Sprache
Astro
Sterne
1
Forks
1
Ø Merge
6 Std. 34 Min.
Gemergte PRs (30 T.)
118

Beschreibung

## Summary

Give `/archives` the job of holding the entire post history in one page load, and leave `/posts` as a paginated recent feed carrying descriptions.

## Motivation

The two pages do the same job with the same component, so neither does it well.

`/posts` paginates at `SITE.postPerPage: 4`. Sixteen posts are four pages behind a prev/next-only control that reads "1 / 4" — reaching the oldest post takes three clicks, and the page count grows by one every four posts.

`/archives` already lists every post grouped year→month, but renders each entry with `Card.astro` — title, date, and full description. That makes it a second feed rather than an index: it is the page that holds the history, but at 100 posts it is a wall nobody scans.

Long-running personal blogs split these two jobs rather than paginating the history:

| Blog | History page | Entry contents |
| --- | --- | --- |
| [Rands in Repose](https://randsinrepose.com/archives/) | all 912 posts since 2002, one page, grouped by year | date · category · title |
| [Jim Nielsen](https://blog.jim-nielsen.com/archive/) | all 805 posts across 14 years, one page | date · title |
| [Tom MacWright](https://macwright.com/writing) | everything back to 2011, one page | date · title |
| [Dave Rupert](https://daverupert.com/archive/) | one page, year groups, tag filter | date · tags · title · short excerpt |
| [Flameeyes](https://flameeyes.blog/) | feed only, ~10 per page | date · category · tags · excerpt |

None of them paginate the archive. Pagination serves the recent feed; the history is one page, and the entries there are index rows, not cards.

## Scope

- Raise `SITE.postPerPage` from 4. Ten is the proposal — 6–12 is the usual band for a listing that carries descriptions, and Flameeyes runs ~10 on the same shape of entry.
- Stop rendering `/archives` with `Card.astro`. Give it a compact entry: no description.
- Keep the year grouping; add per-year jump links if the page warrants them.
- Decide whether `SITE.postPerIndex` (the home page's recent list) moves with `postPerPage` or stays at 4.

Visual treatment is out of scope — this issue settles what each page contains, not how it looks.

## Acceptance criteria

- [ ] Every published post is reachable from `/archives` in a single page load, with no pagination control on that page.
- [ ] `/archives` entries carry no post description.
- [ ] `/posts` shows at least ten entries per page and keeps descriptions.
- [ ] `pnpm build` and `astro check` pass; Pagefind still indexes both pages.

## Additional context

- #360 migrates the vendored theme to upstream v6 and will churn these files. Nothing here arrives free with that migration: upstream v6 still defaults `posts.perPage` to 4 and still ships prev/next-only pagination. The config half ports cleanly (v6 moves it to `astro-paper.config.ts` as `posts.perPage`); the `/archives` rework is local divergence worth sequencing against.
- The archives link is the least discoverable item in the nav, which undercuts the page this issue invests in — tracked separately.
- What an entry row shows beyond date and title depends on the post-type vocabulary, tracked separately against #320.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.