feat: static pages

This commit is contained in:
Cory Dransfeldt 2024-11-11 08:59:00 -08:00
parent 96bff400e8
commit 5f43e417d1
No known key found for this signature in database
34 changed files with 409 additions and 1567 deletions

View file

@ -427,7 +427,7 @@ td:first-of-type,
.default-wrapper {
padding-top: var(--spacing-2xl);
& h2:first-of-type {
h2.page-title {
margin-top: 0;
}
}

View file

@ -32,7 +32,7 @@ const fetchAlbumReleases = async () => {
})
.sort((a, b) => a["timestamp"] - b["timestamp"]);
const upcoming = all.filter((album) => album["release_timestamp"] > today);
const upcoming = all.filter((album) => album["release_timestamp"] > today && album['total_plays'] === 0);
return { all, upcoming };
};

View file

@ -3,7 +3,7 @@ title: Blogroll
permalink: /blogroll.html
description: These are awesome blogs that I enjoy and you may enjoy too.
---
<h2>{{ title }}</h2>
<h2 class="page-title">{{ title }}</h2>
<p>You can <a href="/blogroll.opml" class="plausible-event-name=Blogroll+OPML+download">download an OPML file</a> containing all of these feeds and import them into your RSS reader.</p>
<table>
<tr>

70
src/pages/books/book.html Normal file
View file

@ -0,0 +1,70 @@
---
pagination:
data: books.all
size: 1
alias: book
permalink: "{{ book.url }}/index.html"
schema: book
---
{%- capture alt -%}
{{ book.title }}{% if book.author %} by {{ book.author }}{% endif %}
{%- endcapture -%}
<a class="back-link" href="/books" title="Go back to the books index page">{% tablericon "arrow-left" %} Back to books</a>
<article class="book-focus">
<div class="book-display">
<img
srcset="
{{ globals.cdn_url }}{{ book.image }}?class=verticalsm&type=webp 200w,
{{ globals.cdn_url }}{{ book.image }}?class=verticalmd&type=webp 400w,
{{ globals.cdn_url }}{{ book.image }}?class=verticalbase&type=webp 800w
"
sizes="(max-width: 450px) 203px,
(max-width: 850px) 406px,
(max-width: 1000px) 812px,
812px"
src="{{ globals.cdn_url }}{{ book.image }}?class=verticalsm&type=webp"
alt="{{ alt | replaceQuotes }}"
loading="lazy"
decoding="async"
width="200"
height="307"
/>
<div class="media-meta">
<span class="title"><strong>{{ book.title }}</strong></span>
{% if book.rating %}<span>{{ book.rating }}</span>{% endif %}
{% if book.author %}
<span class="sub-meta">By {{ book.author }}</span>
{% endif %}
{%- if book.favorite -%}
<span class="sub-meta favorite">{% tablericon "heart" %} This is one of my favorite books!</span>
{%- endif -%}
{%- if book.tattoo -%}
<span class="sub-meta tattoo">{% tablericon "needle" %} I have a tattoo inspired by this book!</span>
{%- endif -%}
{% if book.status == 'finished' %}
<span class="sub-meta">Finished on: <strong class="highlight-text">{{ book.date_finished | date: "%B %e, %Y" }}</strong></span>
{% endif %}
{% if book.status == 'started' %}
{%- assign percentage = book.progress | append: '%' -%}
{% render "media/progress-bar.liquid", percentage:percentage %}
{% endif %}
</div>
</div>
{% if book.review %}
{% render "blocks/banners/warning.liquid", text: "There are probably spoilers after this banner — this is a warning about them." %}
<h2>My thoughts</h2>
{{ book.review | markdown }}
{% endif %}
{% render "blocks/associated-media.liquid",
artists: book.artists,
books: book.related_books,
genres: book.genres,
movies: book.movies,
posts: book.posts,
shows: book.shows
%}
{% if book.description %}
<h2>Overview</h2>
{{ book.description | markdown }}
{% endif %}
</article>

View file

@ -8,7 +8,7 @@ schema: books
{%- assign currentYear = 'now' | date: "%Y" -%}
{%- assign bookData = books.all | filterBooksByStatus: 'started' | reverse -%}
{%- assign currentBookCount = books.currentYear | size -%}
<h2>Currently reading</h2>
<h2 class="page-title">Currently reading</h2>
<p>Here's what I'm reading at the moment. I've finished <strong class="highlight-text">{{ currentBookCount }} books</strong> this year.</p>
<p>{{ books.years | bookYearLinks }}</p>
{% render "blocks/banners/rss.liquid", url: "/feeds/books", text: "Subscribe to my books feed or follow along on this page" %}

View file

@ -13,7 +13,7 @@ schema: books-year
{%- assign yearString = year.value | append: '' -%}
{%- assign currentYearString = currentYear | append: '' -%}
<a href="/books" class="back-link">{% tablericon "arrow-left" %} Back to books</a>
<h2>{{ year.value }} / Books</h2>
<h2 class="page-title">{{ year.value }} / Books</h2>
{% if yearString == currentYearString %}
<p>I've finished <strong class="highlight-text">{{ bookData.size }} books</strong> this year.{%- if favoriteBooks %} Among my favorites are {{ favoriteBooks }}.{%- endif -%}</p>
{% else %}

View file

@ -7,7 +7,7 @@ pagination:
permalink: "/links/{% if pagination.pageNumber > 0 %}{{ pagination.pageNumber }}/{% endif %}index.html"
---
{% if pagination.pageNumber == 0 %}
<h2>Links</h2>
<h2 class="page-title">Links</h2>
<p>These are links I've liked or otherwise found interesting. They're all added manually, after having been read and, I suppose, properly considered.</p>
{% render "blocks/banners/rss.liquid", url: "/feeds/links", text: "Subscribe to my links feed or follow along on this page" %}
<hr />

114
src/pages/music/artist.html Normal file
View file

@ -0,0 +1,114 @@
---
pagination:
data: artists
size: 1
alias: artist
permalink: "{{ artist.url }}/index.html"
updated: "now"
schema: artist
---
{%- capture alt -%}
{{ artist.name }} / {{ artist.country }}
{%- endcapture -%}
{%- capture playLabel -%}
{%- if artist.total_plays == 1 -%}
play
{%- else -%}
plays
{%- endif -%}
{%- endcapture -%}
<noscript><style>[data-toggle-content].text-toggle-hidden {height: unset !important;overflow: unset !important;margin-bottom: unset !important;}[data-toggle-content].text-toggle-hidden::after {display: none !important;}</style></noscript>
<a class="back-link" href="/music" title="Go back to the music index page">{% tablericon "arrow-left" %} Back to music</a>
<article class="artist-focus">
<div class="artist-display">
<img
srcset="
{{ globals.cdn_url }}{{ artist.image }}?class=w200&type=webp 200w,
{{ globals.cdn_url }}{{ artist.image }}?class=w600&type=webp 400w,
{{ globals.cdn_url }}{{ artist.image }}?class=w800&type=webp 800w
"
sizes="(max-width: 450px) 200px,
(max-width: 850px) 400px,
800px"
src="{{ globals.cdn_url }}{{ artist.image }}?class=w200&type=webp"
alt="{{ alt | replaceQuotes }}"
loading="eager"
decoding="async"
width="200"
height="200"
/>
<div class="media-meta">
<span class="title"><strong>{{ artist.name }}</strong></span>
<span class="sub-meta country">{% tablericon "map-pin" %} {{ artist.country }}</span>
{%- if artist.favorite -%}
<span class="sub-meta favorite">{% tablericon "heart" %} This is one of my favorite artists!</span>
{%- endif -%}
{%- if artist.tattoo -%}
<span class="sub-meta tattoo">{% tablericon "needle" %} I have a tattoo inspired by this artist!</span>
{%- endif -%}
{%- if artist.total_plays > 0 -%}
<span class="sub-meta"><strong class="highlight-text">{{ artist.total_plays }} {{ playLabel }}</strong></span>
{%- endif -%}
<span class="sub-meta">
<a href="{{ artist.genre.url }}" title="Learn more about {{ artist.genre.name | escape }}">
{{ artist.genre.name }}
</a>
</span>
</div>
</div>
{% render "blocks/associated-media.liquid",
artists: artist.related_artists,
books: artist.books,
genres: artist.genres,
movies: artist.movies,
posts: artist.posts,
shows: artist.shows
%}
{%- if artist.description -%}
<h2>Overview</h2>
<div data-toggle-content class="text-toggle-hidden">{{ artist.description | markdown }}</div>
<button data-toggle-button>Show more</button>
{%- endif -%}
{%- if artist.concerts -%}
<p id="concerts" class="concerts">
{% tablericon "device-speaker" %}
I've seen this artist live!
</p>
<ul>
{% for concert in artist.concerts %}
{%- 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>
On <strong class="highlight-text">{{ concert.date | date: "%B %e, %Y" }}</strong>
{% if venue %} at {{ venue }}{% endif %}
{%- if concert.notes -%}
{% assign notes = concert.notes | prepend: "### Notes\n" | markdown %}
{% render "blocks/modal.liquid", label:"Concert info", icon:"info-circle", content:notes, id:concert.id %}
{%- endif -%}
</li>
{% endfor %}
</ul>
{%- endif -%}
<table>
<tr>
<th>Album</th>
<th>Plays</th>
<th>Year</th>
</tr>
{% for album in artist.albums %}
<tr>
<td>{{ album.name }}</td>
<td>{{ album.total_plays }}</td>
<td>{{ album.release_year }}</td>
</tr>
{% endfor %}
</table>
<p><em>These are the albums by this artist that are in my collection, not necessarily a comprehensive discography.</em></p>
</article>

View file

@ -7,7 +7,7 @@ pagination:
permalink: "/music/concerts/{% if pagination.pageNumber > 0 %}{{ pagination.pageNumber }}/{% endif %}index.html"
---
{%- if pagination.pageNumber == 0 -%}
<h2>Concerts</h2>
<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 <strong class="highlight-text">{{ concerts | size }}</strong> shows. <a href="/music">You can also take a look at the music I've been listening to lately</a>.</p>
<hr />
{%- endif -%}

View file

@ -0,0 +1,41 @@
---
pagination:
data: genres
size: 1
alias: genre
permalink: "{{ genre.url }}/index.html"
updated: "now"
schema: genre
---
{% assign artistCount = genre.artists.size %}
{%- capture connectingWords -%}
{% if artistCount > 1 %}
artists are
{% else %}
artist is
{% endif %}
{%- endcapture -%}
{%- assign mediaLinks = genre.artists | mediaLinks: "artist", 5 -%}
<noscript><style>[data-toggle-content].text-toggle-hidden {height: unset !important;overflow: unset !important;margin-bottom: unset !important;}[data-toggle-content].text-toggle-hidden::after {display: none !important;}</style></noscript>
<a class="back-link" href="/music" title="Go back to the music index page">{% tablericon "arrow-left" %} Back to music</a>
<h2>{{ genre.name }}</h2>
<article class="genre-focus">
{%- if mediaLinks -%}
<p>My top <strong class="highlight-text">{{ genre.name }}</strong> {{ connectingWords }} {{ mediaLinks }}. I've listened to <strong class="highlight-text">{{ genre.total_plays }}</strong> tracks form this genre.</p>
<hr />
{%- endif -%}
{% render "blocks/associated-media.liquid",
books: genre.books,
movies: genre.movies,
posts: genre.posts,
%}
{%- if genre.description -%}
<h3>Overview</h3>
<div data-toggle-content class="text-toggle-hidden">
{{ genre.description | markdown }}
<p><a href="{{ genre.wiki_link }}">Continue reading at Wikipedia.</a></p>
<p><em>Wikipedia content provided under the terms of the <a href="https://creativecommons.org/licenses/by-sa/3.0/">Creative Commons BY-SA license</a></em></p>
</div>
<button data-toggle-button>Show more</button>
{%- endif -%}
</article>

View file

@ -5,7 +5,7 @@ permalink: "/music.html"
updated: "now"
schema: music-index
---
<h2>{{ title }}</h2>
<h2 class="page-title">{{ title }}</h2>
<p>I've listened to <strong class="highlight-text">{{ music.week.artists.size }} artists</strong>, <strong class="highlight-text">{{ music.week.albums.size }} albums</strong> and <strong class="highlight-text">{{ music.week.totalTracks }} tracks</strong> this week. Most of that has been {{ music.week.genres | mediaLinks: "genre", 5 }}.</p>
<p><strong class="highlight-text">Take a look at what I've listened to</strong> <a href="/music/this-month">this month</a> or <a href="/music/concerts">check out the concerts I've been to.</a></p>
<p class="music">{% render "blocks/now-playing.liquid", nowPlaying:nowPlaying.content %}</p>

View file

@ -6,7 +6,7 @@ updated: "now"
image: music.month.artists[0].image
schema: music-period
---
<h2>{{ title }}</h2>
<h2 class="page-title">{{ title }}</h2>
<p>I've listened to <strong class="highlight-text">{{ music.month.artists.size }} artists</strong>, <strong class="highlight-text">{{ music.month.albums.size }} albums</strong> and <strong class="highlight-text">{{ music.month.totalTracks }} tracks</strong> this month. Most of that has been {{ music.month.genres | mediaLinks: "genre", 5 }}.</p>
<p><strong class="highlight-text">Take a look at what I've listened to</strong> <a href="/music">this week</a> or <a href="/music/concerts">check out the concerts I've been to.</a></p>
<hr />

View file

@ -9,7 +9,7 @@ schema: favorite-movies
---
<a href="/watching" class="back-link">{% tablericon "arrow-left" %} Back to watching</a>
{% if pagination.pageNumber == 0 %}
<h2 class="watching">{{ title }}</h2>
<h2 class="page-title">{{ title }}</h2>
<p>These are my favorite movies. There are many like them, but these are mine.</p>
<hr />
{% endif %}

View file

@ -9,7 +9,7 @@ schema: favorite-shows
---
<a href="/watching" class="back-link">{% tablericon "arrow-left" %} Back to watching</a>
{% if pagination.pageNumber == 0 %}
<h2 class="watching">{{ title }}</h2>
<h2 class="page-title">{{ title }}</h2>
<p>These are my favorite shows. There are many like them, but these are mine.</p>
<hr />
{% endif %}

View file

@ -6,7 +6,7 @@ updated: "now"
schema: watching
---
{%- assign featuredMovie = movies.recentlyWatched | shuffleArray | first -%}
<h2 class="watching">{{ title }}</h2>
<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>
{% render "blocks/banners/rss.liquid", url: "/feeds/movies", text: "Subscribe to my movies feed or follow along on this page" %}

View file

@ -0,0 +1,69 @@
---
pagination:
data: movies.movies
size: 1
alias: movie
permalink: "{{ movie.url }}/index.html"
schema: movie
---
{%- capture alt -%}
{{ movie.title }} / {{ movie.year }}{% if move.rating %} ({{ movie.rating }}){% endif %}
{%- endcapture -%}
<a class="back-link" href="/watching" title="Go back to the watching index page">{% tablericon "arrow-left" %} Back to watching</a>
<article class="watching focus">
<img
srcset="
{{ globals.cdn_url }}{{ movie.backdrop }}?class=bannersm&type=webp 256w,
{{ globals.cdn_url }}{{ movie.backdrop }}?class=bannermd&type=webp 512w,
{{ globals.cdn_url }}{{ movie.backdrop }}?class=bannerbase&type=webp 1024w
"
sizes="(max-width: 450px) 256px,
(max-width: 850px) 512px,
1024px"
src="{{ globals.cdn_url }}{{ movie.backdrop }}?class=bannersm&type=webp"
alt="{{ alt | replaceQuotes }}"
class="image-banner"
loading="eager"
decoding="async"
width="256"
height="180"
/>
<div class="media-meta">
<span class="title"><strong>{{ movie.title }}</strong>{%- if movie.year and not movie.rating %} ({{ movie.year }}){%- endif -%}</span>
{%- if movie.rating -%}
<span>
{{ movie.rating }}
{%- if movie.year %}
({{ movie.year }})
{%- endif -%}
</span>
{% endif -%}
{%- if movie.favorite -%}
<span class="sub-meta favorite">{% tablericon "heart" %} This is one of my favorite movies!</span>
{%- endif -%}
{%- if movie.tattoo -%}
<span class="sub-meta tattoo">{% tablericon "needle" %} I have a tattoo inspired by this movie!</span>
{%- endif -%}
{%- if movie.collected -%}
<span class="sub-meta collected">{% tablericon "circle-check" %} This movie is in my collection!</span>
{%- endif -%}
{%- if movie.lastWatched -%}<span class="sub-meta">Last watched on {{ movie.lastWatched | date: "%B %e, %Y" }}.</span>{%- endif -%}
</div>
{% if movie.review %}
{% render "blocks/banners/warning.liquid", text: "There are probably spoilers after this banner — this is a warning about them." %}
<h2>My thoughts</h2>
{{ movie.review | markdown }}
{% endif %}
{% render "blocks/associated-media.liquid",
artists: movie.artists,
books: movie.books,
genres: movie.genres,
movies: movie.related_movies,
posts: movie.posts,
shows: movie.shows
%}
{% if movie.description %}
<h2>Overview</h2>
{{ movie.description | markdown }}
{% endif %}
</article>

View file

@ -0,0 +1,66 @@
---
pagination:
data: tv.shows
size: 1
alias: show
permalink: "{{ show.url }}/index.html"
schema: show
---
{%- capture alt -%}
{{ show.title }} / {{ show.year }}
{%- endcapture -%}
<a class="back-link" href="/watching" title="Go back to the watching index page">{% tablericon "arrow-left" %} Back to watching</a>
<article class="watching focus">
<img
srcset="
{{ globals.cdn_url }}{{ show.backdrop }}?class=bannersm&type=webp 256w,
{{ globals.cdn_url }}{{ show.backdrop }}?class=bannermd&type=webp 512w,
{{ globals.cdn_url }}{{ show.backdrop }}?class=bannerbase&type=webp 1024w
"
sizes="(max-width: 450px) 256px,
(max-width: 850px) 512px,
1024px"
src="{{ globals.cdn_url }}{{ show.backdrop }}?class=bannersm&type=webp"
alt="{{ alt | replaceQuotes }}"
class="image-banner"
loading="eager"
decoding="async"
width="256"
height="180"
/>
<div class="media-meta">
<span class="title"><strong>{{ show.title }}</strong>{%- if show.year %} ({{ show.year }}){%- endif -%}</span>
{%- if show.favorite -%}
<span class="sub-meta favorite">{% tablericon "heart" %} This is one of my favorite shows!</span>
{%- endif -%}
{%- if show.tattoo -%}
<span class="sub-meta tattoo">{% tablericon "needle" %} I have a tattoo inspired by this show!</span>
{%- endif -%}
{%- if show.collected -%}
<span class="sub-meta collected">{% tablericon "circle-check" %} This show is in my collection!</span>
{%- endif -%}
{%- if show.episode.formatted_episode -%}
{%- capture lastWatchedText -%}
I last watched <strong class="highlight-text">{{ show.episode.formatted_episode }}</strong> on {{ show.episode.last_watched_at | date: "%B %e, %Y" }}.
{%- endcapture -%}
<span class="sub-meta">{{ lastWatchedText }}</span>
{%- endif -%}
</div>
{% if show.review %}
{% render "blocks/banners/warning.liquid", text: "There are probably spoilers after this banner — this is a warning about them." %}
<h2>My thoughts</h2>
{{ show.review | markdown }}
{% endif %}
{% render "blocks/associated-media.liquid",
artists: show.artists,
books: show.books,
genres: show.genres,
movies: show.movies,
posts: show.posts,
shows: show.related_shows
%}
{% if show.description %}
<h2>Overview</h2>
{{ show.description | markdown }}
{% endif %}
</article>