feat: initial commit

This commit is contained in:
Cory Dransfeldt 2025-03-27 16:46:02 -07:00
commit e214116e40
No known key found for this signature in database
253 changed files with 17406 additions and 0 deletions

View file

@ -0,0 +1,55 @@
---
title: Books
description: Here's what I'm reading at the moment.
permalink: "/books/index.html"
schema: books
updated: "now"
---
{%- assign currentYear = 'now' | date: "%Y" -%}
{%- assign bookData = books.all | filterBooksByStatus: 'started' | reverse -%}
{%- assign currentBookCount = books.currentYear | size -%}
<h2 class="page-title">Currently reading</h2>
<p>Here's what I'm reading at the moment. I've finished <mark>{{ currentBookCount }} books</mark> this year. I've read <mark>{{ books.daysRead }}</mark> days in a row and counting.</p>
<p class="book-years">{{ books.years | bookYearLinks }}</p>
{% render "blocks/banners/rss.liquid",
url: "/feeds/books.xml",
text: "Subscribe to my books feed or follow along on this page"
%}
<hr />
{% for book in bookData %}
{% capture alt %}{{ book.title }} by {{ book.authors }}{% endcapture %}
<article class="book-entry">
<a href="{{ book.url }}">
<img
srcset="
{{ globals.cdn_url }}{{ book.image }}?class=verticalsm&type=webp 200w,
{{ globals.cdn_url }}{{ book.image }}?class=verticalmd&type=webp 400w
"
sizes="(max-width: 450px) 200px,
400px"
src="{{ globals.cdn_url }}{{ book.image }}?class=verticalsm&type=webp"
alt="{{ alt | replaceQuotes }}"
loading="lazy"
decoding="async"
width="200"
height="307"
/>
</a>
<div class="media-meta">
<a href="{{ book.url }}">
<h2>{{ book.title }}</h2>
</a>
{% if book.author %}
<span class="sub-meta">By {{ book.author }}</span>
{% endif %}
{% if book.progress %}
{% render "media/progress-bar.liquid",
percentage:book.progress
%}
{% endif %}
{% if book.description %}
<div class="description">{{ book.description | normalize_whitespace | markdown | htmlTruncate }}</div>
{% endif %}
</div>
</article>
{% endfor %}

View file

@ -0,0 +1,29 @@
---
pagination:
data: books.years
size: 1
alias: year
permalink: "/books/years/{{ year.value }}/index.html"
schema: books-year
---
{%- assign bookData = year.data | filterBooksByStatus: 'finished' -%}
{%- assign bookDataFavorites = bookData | findFavoriteBooks -%}
{%- capture favoriteBooks -%}{{ bookDataFavorites | shuffleArray | mediaLinks: "book", 5 }}{%- endcapture -%}
{%- assign currentYear = 'now' | date: "%Y" -%}
{%- assign yearString = year.value | append: '' -%}
{%- assign currentYearString = currentYear | append: '' -%}
<a href="/books" class="back-link">{% tablericon "arrow-left" %} Back to books</a>
<h2 class="page-title">{{ year.value }} • Books</h2>
{% if yearString == currentYearString %}
<p>I've finished <mark>{{ bookData.size }} book{% unless bookData.size == 1 %}s{% endunless %}</mark> this year.{%- if favoriteBooks %} Among my favorites are {{ favoriteBooks }}.{%- endif -%}</p>
{% else %}
<p>I finished <mark>{{ bookData.size }} book{% unless bookData.size == 1 %}s{% endunless %}</mark> in <mark>{{ year.value }}</mark>.{%- if favoriteBooks %} Among my favorites were {{ favoriteBooks }}.{%- endif -%}</p>
{% endif %}
<hr />
{% render "media/grid.liquid",
globals:globals,
data:bookData,
shape:"vertical",
count:200,
loading:"eager"
%}

View file

@ -0,0 +1,48 @@
---
title: Concerts
description: These are concerts I've attended (not all of them — just the ones I could remember or glean from emails, photo metadata et al).
pagination:
data: concerts
size: 30
permalink: "/music/concerts/{% if pagination.pageNumber > 0 %}{{ pagination.pageNumber }}/{% endif %}index.html"
---
{%- if pagination.pageNumber == 0 -%}
<h2 class="page-title">Concerts</h2>
<p>These are concerts I've attended (not all of them — just the ones I could remember or glean from emails, photo metadata et al). I've been to at least <mark>{{ concerts | size }}</mark> shows. <a href="/music" class="music">You can also take a look at the music I've been listening to lately</a>.</p>
<hr />
{%- endif -%}
<ul class="standalone">
{%- for concert in pagination.items -%}
{%- capture artistName -%}
{% if concert.artist.url %}
<a href="{{ concert.artist.url }}" class="music">{{ concert.artist.name }}</a>
{% else %}
{{ concert.artist.name }}
{% endif %}
{%- endcapture -%}
{%- capture venue -%}
{% if concert.venue.name %}
{% if concert.venue.latitude and concert.venue.longitude %}
<a href="https://www.openstreetmap.org/?mlat={{ concert.venue.latitude }}&mlon={{ concert.venue.longitude }}#map=18/{{ concert.venue.latitude }}/{{ concert.venue.longitude }}">{{ concert.venue.name_short }}</a>
{% else %}
{{ concert.venue.name_short }}
{% endif %}
{% endif %}
{%- endcapture -%}
<li>
<strong>{{ artistName }}</strong> on {{ concert.date | date: "%B %e, %Y" }}
{% if venue %} at {{ venue }}{% endif %}
{%- if concert.notes -%}
{% assign notes = concert.notes | prepend: "### Notes\n" | markdown %}
{% render "blocks/modal.liquid",
icon:"info-circle",
content:notes,
id:concert.id
%}
{%- endif -%}
</li>
{%- endfor -%}
</ul>
{% render "nav/paginator.liquid",
pagination:pagination
%}

View file

@ -0,0 +1,80 @@
---
title: Music
description: This is everything I've been listening to recently — it's collected in a database as I listen to it and displayed here.
permalink: "/music/index.html"
schema: music-index
updated: "now"
---
<h2 class="page-title">{{ title }}</h2>
<p>I've listened to <mark>{{ music.week.artists.size }} artists</mark>, <mark>{{ music.week.albums.size }} albums</mark> and <mark>{{ music.week.totalTracks }} tracks</mark> this week. Most of that has been {{ music.week.genres | mediaLinks: "genre", 5 }}.</p>
<p><mark>Take a look at what I've listened to</mark> <a href="/music/this-month">this month</a> or <a href="/music/concerts" class="concerts">check out the concerts I've been to</a>.</p>
{% render "blocks/now-playing.liquid",
nowPlaying:nowPlaying.content
%}
<hr />
<h3 id="artists">
<a href="/music/this-week/artists">
{% tablericon "microphone-2" %} Artists
</a>
</h3>
{% render "media/grid.liquid",
globals:globals,
data:music.week.artists,
count:8,
loading:"eager"
%}
{% render "media/music/tables/all-time/artists.liquid",
globals:globals,
topArtists:topArtists
%}
<h3 id="albums">
<a href="/music/this-week/albums">
{% tablericon "vinyl" %} Albums
</a>
</h3>
{% render "media/grid.liquid",
globals:globals,
data:music.week.albums,
count:8
%}
{% render "media/music/tables/all-time/albums.liquid",
globals:globals,
topAlbums:topAlbums
%}
<h3 id="tracks">
<a href="/music/this-week/tracks/">
{% tablericon "playlist" %}
Tracks
</a>
</h3>
<div>
<input id="tracks-recent" name="track-options" type="radio" aria-hidden="true" checked />
<input id="tracks-chart" name="track-options" type="radio" aria-hidden="true" />
<label for="tracks-recent" class="button" data-toggle="tracks-recent">Recent</label>
<label for="tracks-chart" class="button" data-toggle="tracks-chart">This week</label>
<div class="tracks-recent">
{% render "media/music/charts/recent.liquid",
globals:globals,
data:music.recent
%}
</div>
<div class="tracks-chart">
{% render "media/music/charts/rank.liquid",
data:music.week.tracks,
count:10
%}
</div>
</div>
{%- if albumReleases.upcoming.size > 0 -%}
<h3 id="album-releases">
<a href="/music/album-releases/">
{% tablericon "calendar-time" %}
Anticipated albums
</a>
</h3>
{% render "media/grid.liquid",
globals:globals,
data:albumReleases.upcoming,
count:8
%}
{%- endif -%}

View file

@ -0,0 +1,23 @@
---
title: Anticipated albums
description: These are the album releases I'm currently looking forward to.
permalink: "/music/album-releases/index.html"
schema: music-releases
updated: "now"
---
<h2 class="page-title">{{ title }}</h2>
<p>These are all albums I'm looking forward to (this year — next year?).</p>
<p><mark>Take a look at what I'm listening to</mark> <a href="/music/">now</a> or <a href="/music/concerts" class="concerts">check out the concerts I've been to</a>.</p>
{% render "blocks/banners/calendar.liquid",
url:"/music/releases.ics",
text:"Subscribe to my album releases calendar"
%}
<hr />
{%- if albumReleases.upcoming.size > 0 -%}
{% render "media/grid.liquid",
globals:globals,
data:albumReleases.upcoming,
%}
{%- else -%}
<p style="text-align:center"><mark>OH NO THERE'S NO MUSIC TO LOOK FORWARD TO.</mark></p>
{%- endif -%}

View file

@ -0,0 +1,22 @@
---
title: Albums this month
description: These are the albums I've been listening to this month. All of them are awesome.
pagination:
data: music.month.albums
size: 24
permalink: "/music/this-month/albums/{% if pagination.pageNumber > 0 %}{{ pagination.pageNumber }}/{% endif %}index.html"
schema: music-month-albums
updated: "now"
---
{% if pagination.pageNumber == 0 %}
<h2 class="page-title">Albums this month</h2>
<p>These are the albums I've been listening to this month. All of them are awesome. Listed in descending order from most plays to least.</p>
<p><mark>You can also take a look at</mark> the <a href="/music/this-month/artists">artists I've listened to this month</a>, <a href="/music/this-week/artists">the artists I've listened to this week</a> or <a href="/music/this-week/albums">the albums I've listened to this week</a>.</p>
<p><a href="/music/concerts" class="concerts">I also keep track of the concerts I've been to</a>.</p>
<hr />
{% endif %}
{% render "media/grid.liquid",
globals:globals,
data:pagination.items,
pagination:pagination
%}

View file

@ -0,0 +1,22 @@
---
title: Artists this month
description: These are the artists I've been listening to this month. All of them are awesome.
pagination:
data: music.month.artists
size: 24
permalink: "/music/this-month/artists/{% if pagination.pageNumber > 0 %}{{ pagination.pageNumber }}/{% endif %}index.html"
schema: music-month-artists
updated: "now"
---
{% if pagination.pageNumber == 0 %}
<h2 class="page-title">Artists this month</h2>
<p>These are the artists I've been listening to this month. All of them are awesome. Listed in descending order from most plays to least.</p>
<p><mark>You can also take a look at</mark> the <a href="/music/this-week/albums">the albums I've listened to this week</a>, <a href="/music/this-month/albums">albums I've listened to this month</a> or <a href="/music/this-week/artists">the artists I've listened to this week</a>.</p>
<p><a href="/music/concerts" class="concerts">I also keep track of the concerts I've been to</a>.</p>
<hr />
{% endif %}
{% render "media/grid.liquid",
globals:globals,
data:pagination.items,
pagination:pagination
%}

View file

@ -0,0 +1,36 @@
---
title: Music this month
description: This is everything I've been listening to this month — it's collected in a database as I listen to it and displayed here.
permalink: "/music/this-month/index.html"
updated: "now"
---
<h2 class="page-title">{{ title }}</h2>
<p>I've listened to <mark>{{ music.month.artists.size }} artists</mark>, <mark>{{ music.month.albums.size }} albums</mark> and <mark>{{ music.month.totalTracks }} tracks</mark> this month. Most of that has been {{ music.month.genres | mediaLinks: "genre", 5 }}.</p>
<p><mark>Take a look at what I've listened to</mark> <a href="/music">this week</a> or <a href="/music/concerts" class="concerts">check out the concerts I've been to</a>.</p>
<hr />
<h3 id="artists">
<a href="/music/this-month/artists">
{% tablericon "microphone-2" %} Artists
</a>
</h3>
{% render "media/grid.liquid",
globals:globals,
data:music.month.artists,
count:8,
loading: "eager"
%}
<h3 id="albums">
<a href="/music/this-month/albums">
{% tablericon "vinyl" %} Albums
</a>
</h3>
{% render "media/grid.liquid",
globals:globals,
data:music.month.albums,
count:8
%}
<h3 id="tracks">{% tablericon "playlist" %} Tracks</h3>
{% render "media/music/charts/rank.liquid",
data:music.month.tracks,
count:10
%}

View file

@ -0,0 +1,22 @@
---
title: Albums this week
description: These are the albums I've been listening to this week. All of them are awesome.
pagination:
data: music.week.albums
size: 24
permalink: "/music/this-week/albums/{% if pagination.pageNumber > 0 %}{{ pagination.pageNumber }}/{% endif %}index.html"
schema: music-week-albums
updated: "now"
---
{% if pagination.pageNumber == 0 %}
<h2 class="page-title">Albums this week</h2>
<p>These are the albums I've been listening to this week. All of them are awesome. Listed in descending order from most plays to least.</p>
<p><mark>You can also take a look at</mark> the <a href="/music/this-month/artists">artists I've listened to this month</a>, <a href="/music/this-week/artists">the artists I've listened to this week</a> or <a href="/music/this-month/albums">the albums I've listened to this month</a>.</p>
<p><a href="/music/concerts" class="concerts">I also keep track of the concerts I've been to</a>.</p>
<hr />
{% endif %}
{% render "media/grid.liquid",
globals:globals,
data:pagination.items,
pagination:pagination
%}

View file

@ -0,0 +1,22 @@
---
title: Artists this week
description: These are the artists I've been listening to this week. All of them are awesome.
pagination:
data: music.week.artists
size: 24
permalink: "/music/this-week/artists/{% if pagination.pageNumber > 0 %}{{ pagination.pageNumber }}/{% endif %}index.html"
schema: music-week-artists
updated: "now"
---
{% if pagination.pageNumber == 0 %}
<h2 class="page-title">Artists this week</h2>
<p>These are the artists I've been listening to this week. All of them are awesome. Listed in descending order from most plays to least.</p>
<p><mark>You can also take a look at</mark> the <a href="/music/this-week/albums">albums I've listened to this week</a>, <a href="/music/this-month/albums">the albums I've listened to this month</a> or <a href="/music/this-month/artists">the artists I've listened to this month</a>.</p>
<p><a href="/music/concerts" class="concerts">I also keep track of the concerts I've been to</a>.</p>
<hr />
{% endif %}
{% render "media/grid.liquid",
globals:globals,
data:pagination.items,
pagination:pagination
%}

View file

@ -0,0 +1,21 @@
---
title: Tracks this week
description: These are tracks artists I've been listening to this week. Some of them are awesome.
pagination:
data: music.week.tracks
size: 30
permalink: "/music/this-week/tracks/{% if pagination.pageNumber > 0 %}{{ pagination.pageNumber }}/{% endif %}index.html"
schema: music-week-tracks
updated: "now"
---
{% if pagination.pageNumber == 0 %}
<h2 class="page-title">Artists this week</h2>
<p>These are the tracks I've been listening to this week. Some of them are awesome. Listed in descending order from most plays to least.</p>
<p><mark>You can also take a look at</mark> the <a href="/music/this-week/albums">albums I've listened to this week</a>, <a href="/music/this-month/albums">the albums I've listened to this month</a>, <a href="/music/this-week/artists">the artists I've listened to this week</a> or the <a href="/music/this-month/artists">the artists I've listened to this month</a>.</p>
<p><a href="/music/concerts" class="concerts">I also keep track of the concerts I've been to</a>.</p>
<hr />
{% endif %}
{% render "media/music/charts/rank.liquid",
data:pagination.items,
pagination:pagination
%}

View file

@ -0,0 +1,22 @@
---
title: Favorite movies
description: These are my favorite movies. There are many like them, but these are mine.
pagination:
data: movies.favorites
size: 24
permalink: "/watching/favorites/movies/{% if pagination.pageNumber > 0 %}{{ pagination.pageNumber }}/{% endif %}index.html"
schema: favorite-movies
---
<a href="/watching" class="back-link">{% tablericon "arrow-left" %} Back to watching</a>
{% if pagination.pageNumber == 0 %}
<h2 class="page-title">{{ title }}</h2>
<p>These are my favorite movies. There are many like them, but these are mine.</p>
<hr />
{% endif %}
{% render "media/grid.liquid",
globals:globals,
data:pagination.items,
pagination:pagination,
shape:"vertical"
count:24
%}

View file

@ -0,0 +1,22 @@
---
title: Favorite shows
description: These are my favorite shows. There are many like them, but these are mine.
pagination:
data: tv.favorites
size: 24
permalink: "/watching/favorites/shows/{% if pagination.pageNumber > 0 %}{{ pagination.pageNumber }}/{% endif %}index.html"
schema: favorite-shows
---
<a href="/watching" class="back-link">{% tablericon "arrow-left" %} Back to watching</a>
{% if pagination.pageNumber == 0 %}
<h2 class="page-title">{{ title }}</h2>
<p>These are my favorite shows. There are many like them, but these are mine.</p>
<hr />
{% endif %}
{% render "media/grid.liquid",
globals:globals,
data:pagination.items,
pagination:pagination,
shape:"vertical"
count:24
%}

View file

@ -0,0 +1,66 @@
---
title: Watching
description: Here's all of the TV and movies I've been watching presented in what is (hopefully) an organized fashion.
permalink: "/watching/index.html"
schema: watching
updated: "now"
---
{%- assign featuredMovie = movies.recentlyWatched | shuffleArray | first -%}
<h2 class="page-title">{{ title }}</h2>
{% render "media/watching/hero.liquid",
globals:globals,
movie:featuredMovie
%}
<p>Here's all of the TV and movies I've been watching presented in what is (hopefully) an organized fashion.</p>
<p><a href="/watching/shows/upcoming">You can see all of the shows I've got queued up here.</a></p>
{% render "blocks/banners/rss.liquid",
url: "/feeds/movies.xml",
text: "Subscribe to my movies feed or follow along on this page"
%}
<hr />
<h3 id="movies">
<a href="/watching/recent/movies">
{% tablericon "movie" %} Recent movies
</a>
</h3>
{% render "media/grid.liquid",
globals:globals,
data:movies.recentlyWatched,
shape:"vertical",
count:6
%}
<h3 id="tv">
<a href="/watching/recent/shows">
{% tablericon "device-tv-old" %} Recent shows
</a>
</h3>
{% render "media/grid.liquid",
globals:globals,
data:tv.recentlyWatched,
shape:"vertical",
count:6
%}
<h3 id="favorite-movies">
<a href="/watching/favorites/movies">
{% tablericon "star" %} Favorite movies
</a>
</h3>
{% assign favoriteMovies = movies.favorites | shuffleArray %}
{% render "media/grid.liquid",
globals:globals,
data:favoriteMovies,
shape:"vertical",
count:6
%}
<h3 id="favorite-shows">
<a href="/watching/favorites/shows">
{% tablericon "star" %} Favorite shows
</a>
</h3>
{% assign favoriteShows = tv.favorites | shuffleArray %}
{% render "media/grid.liquid",
globals:globals,
data:favoriteShows,
shape:"vertical",
count:6
%}

View file

@ -0,0 +1,22 @@
---
title: Recent movies
description: These are my favorite movies. There are many like them, but these are mine.
pagination:
data: movies.recentlyWatched
size: 24
permalink: "/watching/recent/movies/{% if pagination.pageNumber > 0 %}{{ pagination.pageNumber }}/{% endif %}index.html"
schema: favorite-movies
---
<a href="/watching" class="back-link">{% tablericon "arrow-left" %} Back to watching</a>
{% if pagination.pageNumber == 0 %}
<h2 class="page-title">{{ title }}</h2>
<p>These are my favorite movies. There are many like them, but these are mine.</p>
<hr />
{% endif %}
{% render "media/grid.liquid",
globals:globals,
data:pagination.items,
pagination:pagination,
shape:"vertical"
count:24
%}

View file

@ -0,0 +1,22 @@
---
title: Recent shows
description: These are my favorite shows. There are many like them, but these are mine.
pagination:
data: tv.recentlyWatched
size: 24
permalink: "/watching/recent/shows/{% if pagination.pageNumber > 0 %}{{ pagination.pageNumber }}/{% endif %}index.html"
schema: favorite-shows
---
<a href="/watching" class="back-link">{% tablericon "arrow-left" %} Back to watching</a>
{% if pagination.pageNumber == 0 %}
<h2 class="page-title">{{ title }}</h2>
<p>These are my favorite shows. There are many like them, but these are mine.</p>
<hr />
{% endif %}
{% render "media/grid.liquid",
globals:globals,
data:pagination.items,
pagination:pagination,
shape:"vertical"
count:24
%}

View file

@ -0,0 +1,28 @@
---
title: Upcoming shows
description: Here are all of the episodes I've got queued up from the shows I'm watching.
permalink: "/watching/shows/upcoming/index.html"
schema: upcoming-shows
updated: "now"
---
{%- assign featuredMovie = upcomingShows.watching | shuffleArray | first -%}
<a href="/watching" class="back-link">{% tablericon "arrow-left" %} Back to watching</a>
<h2 class="page-title">{{ title }}</h2>
{% render "media/watching/hero.liquid",
globals:globals,
movie:featuredMovie
%}
<p>Here's all of the TV shows I'm keeping up with. Shows I <em>want</em> to watch but haven't started are at the bottom of the page — the rest are sorted by air and watch date. Shows I follow with new episodes appear first, followed by shows I'm catching up on and those with new episodes on the way.</p>
<hr />
<h3>Watching</h3>
{% render "media/grid.liquid",
globals:globals,
data:upcomingShows.watching,
shape:"vertical"
%}
<h3>Not started</h3>
{% render "media/grid.liquid",
globals:globals,
data:upcomingShows.unstarted,
shape:"vertical"
%}