★ TV Shows
• 203 words • 1 min • updated
I added a TV shows page with a sample of my favorites, inspired by Michael Harley’s watching page and Michael Stapelberg’s series page.
The list lives in YAML. Trakt keeps my full watch history; this file stays small, alphabetical, and intentionally incomplete:
data/tv-shows.yaml
yaml
shows:
# keep-sorted start case=no by_regex=title:\s+"?([^"]+)
- title: 13 Reasons Why
years: 2017–2020
seasons: 4
url: https://www.themoviedb.org/tv/66788-13-reasons-why
cover: https://media.themoviedb.org/t/p/w500/nel144y4dIOdFFid6twN5mAX9Yd.jpg
- title: 3%
years: 2016–2020
seasons: 4
url: https://www.themoviedb.org/tv/68467-3
cover: https://media.themoviedb.org/t/p/w500/uLBJSLuAQ8UqLIKZVWG3uNEXwjt.jpg
# keep-sorted endA custom Hugo layout turns each record into a poster card. Show details and posters come from The Movie Database:
layouts/_default/tv-shows.html
go-html-template
<div class="tv-shows-grid">
{{- range $data.shows }}
<div class="tv-shows-item">
<a href="{{ .url }}" title="{{ .title }} ({{ .years }})">
<img class="tv-shows-cover" src="{{ .cover }}" alt="Poster for {{ .title }}" loading="lazy" decoding="async" referrerpolicy="no-referrer">
<div class="tv-shows-item-title">{{ .title }}</div>
</a>
<div class="tv-shows-item-meta">
{{ .years }} · {{ .seasons }} {{ cond (eq .seasons 1) "season" "seasons" }}
</div>
</div>
{{- end }}
</div>The data has a JSON schema, and the page now sits next to Books in the More menu:
shell
% git show --stat --oneline 97dc4bde16
97dc4bde16 add TV shows page
6 files changed, 305 insertions(+), 3 deletions(-)TV show recommendations are almost always welcome. ∎
🤖 This post was drafted with an AI agent through
/bloggify,
then reviewed and edited by me.
More agent-assisted posts.