alunduil / alunduil/blog.alunduil.com
Listing entries name the post's type
- Vorherrschende Sprache
- Astro
- Sterne
- 1
- Forks
- 1
- Ø Merge
- 6 Std. 34 Min.
- Gemergte PRs (30 T.)
- 118
Beschreibung
## Summary
Surface each post's type in `/posts`, `/archives`, and tag pages, so a reader can tell a review from an article without opening it.
## Motivation
Nothing in a listing distinguishes the genres. Four of sixteen posts are reviews, and in the feed they sit among the articles as title, date, and description — the same shape. The only signal is the URL (`/posts/reviews//`), which a reader sees after clicking.
Every reference blog that has more than one genre puts the genre on the row. [Rands](https://randsinrepose.com/archives/) renders each archive entry as date · category · title across all 912 posts; [Flameeyes](https://flameeyes.blog/) carries the category on every feed entry; [Dave Rupert](https://daverupert.com/archive/) uses tags for the same purpose. It is the cheapest possible discriminator: one word per row, it works for every entry, and it does not depend on an image existing.
The blog already has the underlying distinction — `src/data/blog/reviews/` is a real directory that survives into the URL — it just never reaches the reader.
## Scope
- Decide where type comes from: derived from the content path (as the archival `_/` folders already are), or a schema field in `src/content.config.ts`.
- Render the type on listing entries in `/posts`, `/archives`, and tag pages.
- Reconcile against the vocabulary #320 settles. That ADR names `article` and `note` as types with narrative and experience-report as *styles*; "review" is not currently placed on either axis, and this issue needs it named before it can render it.
- Keep tags doing what they do. Type is what the post *is*; tags stay what it is *about*.
## Acceptance criteria
- [ ] Every listing entry carries its type, sourced from one place rather than restated per page.
- [ ] Review posts are distinguishable from articles in `/posts` and `/archives` without opening them.
- [ ] The type names match the vocabulary recorded by #320.
- [ ] `pnpm build` and `astro check` pass.
## Additional context
- Blocked by #320: the type vocabulary has to exist before a listing can print it.
- #580 reworks `/archives` into a compact index; the type is the third column of that row.
- #360 will churn the listing components — worth sequencing against.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Bewertung
Dieses Issue wurde noch nicht bewertet.