reorganized seasons, updated podcast feed

This commit is contained in:
2024-11-20 17:09:33 -06:00
parent 0e28ef7a3a
commit 19ce5934b7
30 changed files with 145 additions and 60 deletions

View File

@@ -42,6 +42,14 @@ module.exports = function(eleventyConfig) {
return value; return value;
}); });
eleventyConfig.addFilter("episodeNumber", function (s, episode) {
return episode ? Number(episode) : Number(s.replace(/[^0-9]/,''))
});
eleventyConfig.addFilter("episodesInSeason", function (season) {
return this.eleventy.collection.episode.filter(ep=>ep.season == season)
return episode ? Number(episode) : Number(s.replace(/[^0-9]/,''))
});
// Shortcodes // Shortcodes
eleventyConfig.addPairedShortcode( eleventyConfig.addPairedShortcode(
"prologue", "prologue",
@@ -109,6 +117,7 @@ module.exports = function(eleventyConfig) {
}); });
return { return {
pathPrefix:"blog",
dir: { dir: {
data: "data", data: "data",
input: "content", input: "content",

View File

@@ -7,6 +7,7 @@ system:
seasons: seasons:
- 1 - 1
- 4 - 4
date: 2021-04-26
--- ---
It is a dark time for the galaxy. Striking from their hidden base, the Rebel Alliance has destroyed the evil GALACTIC EMPIRE's powerful Death Star. Now, Imperial forces strike back, throwing the galaxy into war. It is a dark time for the galaxy. Striking from their hidden base, the Rebel Alliance has destroyed the evil GALACTIC EMPIRE's powerful Death Star. Now, Imperial forces strike back, throwing the galaxy into war.

View File

@@ -7,6 +7,7 @@ system:
seasons: seasons:
- 3 - 3
- 5 - 5
date: 2023-04-05
--- ---
In the electrified, shadowy streets of Doskvol, the Junk Fort Boys—a distinctive crew of eccentrics—tackle a series of misadventures. In the electrified, shadowy streets of Doskvol, the Junk Fort Boys—a distinctive crew of eccentrics—tackle a series of misadventures.

View File

@@ -6,5 +6,6 @@ system:
name: Dungeons and Dragons name: Dungeons and Dragons
seasons: seasons:
- 2 - 2
date: 2022-08-05
--- ---
When Morty sees a cute girl at school playing Dungeons & Dragons, he asks Rick to show him the ropes, only to discover that his grandfather is a veteran gamer. Next thing he knows, the entire family has been pulled into a campaign that escalates from virtual D&D simulations to alternate universes governed by the rules of the game. And as it turns out, Rick isn't the only one who knows his way around a d20. When Morty sees a cute girl at school playing Dungeons & Dragons, he asks Rick to show him the ropes, only to discover that his grandfather is a veteran gamer. Next thing he knows, the entire family has been pulled into a campaign that escalates from virtual D&D simulations to alternate universes governed by the rules of the game. And as it turns out, Rick isn't the only one who knows his way around a d20.

View File

@@ -0,0 +1,11 @@
module.exports = {
"layout": "episode",
"tags":['episode'],
"eleventyComputed": {
"episode": "{{page.fileSlug | episodeNumber: episode}}",
"podcast": (data) => ({
"url": data.podcast.url ||`${data.site.cdn}/s0${data.season}e${data.episode}.mp3`,
"title": data.podcast.title || `S0${data.season}E${data.episode}: ${data.title}`
})
}
}

View File

@@ -1,5 +0,0 @@
{
"layout": "episode",
"tags":"episode",
"podcast": true
}

View File

@@ -1,6 +1,5 @@
--- ---
title: "46:" title: "46:"
episode: 46
date: 2022-07-08 date: 2022-07-08
--- ---

View File

@@ -0,0 +1,13 @@
module.exports = {
"season": 1,
"tags": [
"crew-of-the-kahuna", "season:1"
],
"stylesheets": ["/css/s04.css"],
"eleventyComputed": {
"podcast": (data)=>({
"title": `E${data.episode}: ${data.title}`
})
}
}

View File

@@ -1,8 +0,0 @@
{
"season": 1,
"tags": [
"crew-of-the-kahuna"
],
"stylesheets": ["/css/s04.css"]
}

View File

@@ -1,7 +1,15 @@
--- ---
layout: podcast-season layout: podcast-season
season: 1 season: 1
date: 2021-04-26
override:tags: ["season"] override:tags: ["season"]
eleventyExcludeFromCollections: ["episode"]
pagination:
size: 10
alias: "episodes"
data: "collections.season:1"
generatePageOnEmptyData: true
reverse: true
--- ---
Escape from Mos Shuuta, Long Arm of the Hutt Escape from Mos Shuuta, Long Arm of the Hutt

View File

@@ -1,6 +1,6 @@
{ {
"season": 2, "season": 2,
"tags": [ "tags": [
"rick-and-morty" "rick-and-morty", "season:2"
] ]
} }

View File

@@ -1,5 +1,13 @@
--- ---
layout: podcast-season layout: podcast-season
season: 2 season: 2
date: 2022-08-05
override:tags: ["season"] override:tags: ["season"]
eleventyExcludeFromCollections: ["episode"]
pagination:
size: 10
alias: "episodes"
data: "collections.season:2"
generatePageOnEmptyData: true
reverse: true
--- ---

View File

@@ -1,6 +1,6 @@
{ {
"season": 3, "season": 3,
"tags": [ "tags": [
"junkfort-boys" "junkfort-boys", "season:3"
] ]
} }

View File

@@ -1,5 +1,13 @@
--- ---
layout: podcast-season layout: podcast-season
season: 3 season: 3
date: 2023-04-05
override:tags: ["season"] override:tags: ["season"]
eleventyExcludeFromCollections: ["episode"]
pagination:
size: 10
alias: "episodes"
data: "collections.season:3"
generatePageOnEmptyData: true
reverse: true
--- ---

View File

@@ -1,7 +1,7 @@
{ {
"season": 4, "season": 4,
"tags": [ "tags": [
"crew-of-the-kahuna" "crew-of-the-kahuna", "season:4"
], ],
"stylesheets": ["/css/s04.css"] "stylesheets": ["/css/s04.css"]
} }

View File

@@ -1,5 +1,12 @@
--- ---
layout: podcast-season layout: podcast-season
season: 4 date: 2024-01-03
override:tags: ["season"] override:tags: ["season"]
eleventyExcludeFromCollections: ["episode"]
pagination:
size: 10
alias: "episodes"
data: "collections.season:4"
generatePageOnEmptyData: true
reverse: true
--- ---

View File

@@ -7,7 +7,7 @@ date: 2024-07-17
<section class="prologue"> <section class="prologue">
Olden Times Olden Times
========================== ========================
World's Oldest Newspaper World's Oldest Newspaper
# Wanted! Gang Terrorizes City # Wanted! Gang Terrorizes City

View File

@@ -4,4 +4,16 @@ episode: 25
date: 2024-09-11 date: 2024-09-11
--- ---
<p class="newspaper-name">Bon Voyage Bulletin</p> <p class="newspaper-tagline">No, I will not call you Gutenburg</p> <p class="newspaper-date">2024-09-11</p> <h2>A Day At Sea Unravels More Mysteries</h2> <img src="worlds/bridgets-in-the-dark/Screenshot%202024-09-11%20180943.png"> <blockquote> <p>Who is "Maggie?"</p> </blockquote> <div class="newspaper-content"> <p>The crew spent the next day arguing about what to do for their next move. Eventually, it was agreed that they would prepare to travel to Tycheros, despite their misgivings about (both) captains.</p> <p>Squish caught a large angler fish, and Fitzclyde declared they would eat in his cabin tonight. "Plodable" expert Djuckels painted the cannon with some sick flames, which did not increase it's effectivness, but did increase it's coolness. Patches, per usual, spent time cooped up in the bathroom, talking to Neelix, whio suggested that Patches might get further if he connected with his crew mates, and tried to be a bit more honest with them.</p> <p>But Patches isn't the only person hiding something. Djuckles met a mysterious girl named Maggie, who claims to work on the ship. She quicly disapeared somewhere on the ship, and Fitzelyde claims to know nothing about her. He tried telling the crew a story about a harp, but, as usual, they weren't listening, and instead insulted his poor ukelele playing. He regrests inviting them for dinner.</p> <p>But all that will have to wait. Because a migrating school of leviathans stands between the crew and their next stop, and who knows what lies beyond?</p> </div> <p class="newspaper-name">Bon Voyage Bulletin</p>
<p class="newspaper-tagline">No, I will not call you Gutenburg</p>
<p class="newspaper-date">2024-09-11</p>
<h2>A Day At Sea Unravels More Mysteries</h2>
<img src="worlds/bridgets-in-the-dark/Screenshot%202024-09-11%20180943.png">
<blockquote>
<p>Who is "Maggie?"</p>
</blockquote>
<div class="newspaper-content">
<p>The crew spent the next day arguing about what to do for their next move. Eventually, it was agreed that they would prepare to travel to Tycheros, despite their misgivings about (both) captains.</p>
<p>Squish caught a large angler fish, and Fitzclyde declared they would eat in his cabin tonight. "Plodable" expert Djuckels painted the cannon with some sick flames, which did not increase it's effectivness, but did increase it's coolness. Patches, per usual, spent time cooped up in the bathroom, talking to Neelix, whio suggested that Patches might get further if he connected with his crew mates, and tried to be a bit more honest with them.</p> <p>But Patches isn't the only person hiding something. Djuckles met a mysterious girl named Maggie, who claims to work on the ship. She quicly disapeared somewhere on the ship, and Fitzelyde claims to know nothing about her. He tried telling the crew a story about a harp, but, as usual, they weren't listening, and instead insulted his poor ukelele playing. He regrests inviting them for dinner.</p>
<p>But all that will have to wait. Because a migrating school of leviathans stands between the crew and their next stop, and who knows what lies beyond?</p> </div>

View File

@@ -6,7 +6,8 @@ date: 2024-09-11
<section class="prologue"> <section class="prologue">
# Paradise Periodical Paradise Periodical
=====================
How do you know what's happening? We're trapped on the ship! How do you know what's happening? We're trapped on the ship!
# Strange Times on Stranger Shores # Strange Times on Stranger Shores

View File

@@ -9,7 +9,8 @@ podcast: true
<section class="prologue"> <section class="prologue">
# Deep Water Digest Deep Water Digest
====================================
How do you know what they wished for? How do you know what they wished for?
# Day Saved Baths Had By All # Day Saved Baths Had By All

View File

@@ -1,12 +1,12 @@
--- ---
title: title:
date: 2024-11-18 date: 2024-11-18
episode: 30
--- ---
<section class="prologue"> <section class="prologue">
# Dark Water Weekly Dark Water Weekly
==========================
No, no, don't come in here! No, no, don't come in here!
# Fire In Your House And In Your Heart # Fire In Your House And In Your Heart
@@ -23,16 +23,16 @@ As they made a hasty retreat, Lady High Hill warned Djuckels about the true natu
<section class="alternate-titles"> <section class="alternate-titles">
* _"I Thought It Was a Fish"_ \- Tiger (GM) * _"I Thought It Was a Fish"_ \- Tiger (GM)
* _"I Got Hammocked This Morning"_ \- Tiger (GM) * _"I Got Hammocked This Morning"_ \- Tiger (GM)
* _"The Mutiny Habits"_ \- Bridget * _"The Mutiny Habits"_ \- Bridget
* _"Im Just Moody"_ \- Andy * _"Im Just Moody"_ \- Andy
* _"Trying to Cheer up Djuckles"_ \- Tiger (GM) * _"Trying to Cheer up Djuckles"_ \- Tiger (GM)
* _"He's Never Liked Any of You"_ \- Tiger (GM) * _"He's Never Liked Any of You"_ \- Tiger (GM)
* _"Baked Alaska"_ \- Tiger (GM) * _"Baked Alaska"_ \- Tiger (GM)
* _"Squishlicious over There"_ \- Tiger (GM) * _"Squishlicious over There"_ \- Tiger (GM)
* _"What Even Is a Shallot"_ \- Tiger (GM) * _"What Even Is a Shallot"_ \- Tiger (GM)
* _"That Was a Very Touching Moment in My Head"_ \- Tiger (GM) * _"That Was a Very Touching Moment in My Head"_ \- Tiger (GM)
* _"Glittering From the Land"_ \- Tiger (GM) * _"Glittering From the Land"_ \- Tiger (GM)
</section> </section>

View File

@@ -1,7 +1,7 @@
{ {
"season": 5, "season": 5,
"tags": [ "tags": [
"junkfort-boyz" "junkfort-boyz", "season:5"
], ],
"stylesheets": ["/css/s05.css"] "stylesheets": ["/css/s05.css"]
} }

View File

@@ -1,5 +1,13 @@
--- ---
layout: podcast-season layout: podcast-season
season: 5 season: 5
date: 2024-07-17
override:tags: ["season"] override:tags: ["season"]
eleventyExcludeFromCollections: ["episode"]
pagination:
size: 10
alias: "episodes"
data: "collections.season:5"
generatePageOnEmptyData: true
reverse: true
--- ---

View File

@@ -3,6 +3,7 @@ title: Seasons
layout: "base-with-heading" layout: "base-with-heading"
permalink: "/seasons/" permalink: "/seasons/"
override:tags: [] override:tags: []
override:eleventyComputed: []
--- ---
<ul> <ul>

View File

@@ -1,14 +1,12 @@
<!doctype html> <!doctype html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{#if title }}{{ title }}{{else}}{{ site.title }}{{/if}} - {{ site.name }}</title> <title>{{#if title }}{{ title }}{{else}}{{ site.title }}{{/if}} - {{ site.name }}</title>
<link rel="stylesheet" href="/css/style.css"> <link rel="stylesheet" href="/css/style.css">
{{#each stylesheets}} {{#each stylesheets}}
<link rel="stylesheet" href="{{this}}"> <link rel="stylesheet" href="{{this}}">
{{/each}} {{/each}}
<script>
console.log('url with filter', '{{url "/css/style.css"}}')
</script>
</head> </head>
<body class="{{{bodyClasses}}}"> <body class="{{{bodyClasses}}}">
<nav class="navbar navbar-expand-lg bg-body-tertiary"> <nav class="navbar navbar-expand-lg bg-body-tertiary">

View File

@@ -1,5 +1,6 @@
--- ---
layout: base layout: base-with-heading
--- ---
{{{content}}} {{{content}}}

View File

@@ -1,6 +1,5 @@
--- ---
layout: base layout: "base"
bodyClasses: "season-{{{season}}}"
eleventyComputed: eleventyComputed:
bodyClasses: "episode season-{{season}}" bodyClasses: "episode season-{{season}}"
--- ---
@@ -10,9 +9,9 @@ eleventyComputed:
<div class="row"> <div class="row">
<div class="col"><img src="{{{this.url}}}../image.jpg" class="img-fluid"></div> <div class="col"><img src="{{{this.url}}}../image.jpg" class="img-fluid"></div>
<div class="col"> <div class="col">
<h1>{{{title}}}<a href="{{{site.cdn}}}/s0{{{season}}}e{{{episode}}}.mp3" ><i class="bi bi-download m-1"></i></a></h1> <h1>{{{title}}}<a href="{{{podcast.url}}}" ><i class="bi bi-download m-1"></i></a></h1>
<audio controls> <audio controls>
<source src="{{{site.cdn}}}/s0{{{season}}}e{{{episode}}}.mp3" type="audio/mpeg"> <source src="{{{podcast.url}}}" type="audio/mpeg">
Your browser does not support the audio element. Your browser does not support the audio element.
</audio> </audio>
<div class="d-flex felx-wrap m-1 gap-1"> <div class="d-flex felx-wrap m-1 gap-1">

View File

@@ -14,7 +14,7 @@
</section> </section>
<section> <section>
{{#if links.podcastRss}} {{#if links.podcastRss}}
<a href="{{{site.url}}}{{{links.podcastRss}}}" class="btn btn-outline-primary"><i class="bi bi-rss-fill me-1"></i>RSS</a> <a href="{{{links.podcastRss}}}" class="btn btn-outline-primary"><i class="bi bi-rss-fill me-1"></i>RSS</a>
{{/if}} {{/if}}
</section> </section>
</div> </div>
@@ -25,9 +25,9 @@
{{#each (latest_episodes collections.episode)}} {{#each (latest_episodes collections.episode)}}
<div class="col"> <div class="col">
<div class="card m-2"> <div class="card m-2">
<img src="{{this.url}}../image.jpg" class="card-img-left"> <img src="{{this.url}}/../image.jpg" class="img-fluid">
<div class="card-body"> <div class="card-body">
<h5 class="card-title"><a href={{{this.url}}}>{{{data.title}}}</a></h5> <h5 class="card-title"><a href={{{this.url}}}>{{#if data.title}}{{{data.title}}}{{else}}Episode {{data.episode}}{{/if}}</a></h5>
<h6 class="card-subtitle mb-2 text-body-secondary"> Season {{{data.season}}}</h6> <h6 class="card-subtitle mb-2 text-body-secondary"> Season {{{data.season}}}</h6>
<span class="card-subtitle mb-2 text-body-secondary"> {{{date this.date "ddd, MMM D, YYYY, LT"}}}</h6> <span class="card-subtitle mb-2 text-body-secondary"> {{{date this.date "ddd, MMM D, YYYY, LT"}}}</h6>
</div> </div>

View File

@@ -4,15 +4,26 @@ layout: base
<h1>Season {{season}}</h1> <h1>Season {{season}}</h1>
{{{content}}} {{{content}}}
<ul> <ul>
{{#each collections.episode}} {{#each episodes}}
{{#ifEquals data.season ../season}} <li class="card my-2">
<li> <div class="card-body">
<h2> <h5 class="card-title">
<a href="{{{this.page.url}}}"> <a href="{{{this.page.url}}}">
{{{formatSeasonEpisode data.season data.episode }}}: {{{ data.title }}} {{{ data.title }}}
</a> </a>
</h2> </h5>
<p class="card-text">Season {{data.season}}, Episode {{data.episode}}</p>
</div>
</li> </li>
{{/ifEquals}}
{{/each}} {{/each}}
</ul> </ul>
<div aria-label="Page navigation">
<ul class="pagination">
<li class="page-item {{#eq pagination.pageNumber 0}}disabled{{/eq}}"><a class="page-link" href="{{pagination.previous}}">Previous</a></li>
{{#each pagination.hrefs}}
<li class="page-item {{#is @index ../pagination.pageNumber }}active{{/is}}" page-number="{{../pagination.pageNumber}}" index="{{@index}}"><a class="page-link " href="{{this}}">{{plus @index 1}}</a></li>
{{/each}}
<li class="page-item"><a class="page-link {{#eq pagination.pageNumber (minus (length pagination.hrefs) 1)}}disabled{{/eq}}" href="{{pagination.next}}">Next</a></li>
</ul>
</div>

View File

@@ -48,7 +48,7 @@ class PodcastFeed {
itunesImage: data.itunes?.image || data.site.imageUrl || `${data.site.url}${data.page.filePathStem}.jpg` itunesImage: data.itunes?.image || data.site.imageUrl || `${data.site.url}${data.page.filePathStem}.jpg`
}); });
const episodes = data.collections.episode.filter(episode=>episode.data.podcast==true) const episodes = data.collections.episode.filter(episode=>episode.data.podcast!=false)
const items = data.tags ? episodes.filter(episode=>data.tags.every(tag=>episode.data.tags.includes(tag))) : episodes const items = data.tags ? episodes.filter(episode=>data.tags.every(tag=>episode.data.tags.includes(tag))) : episodes
items.forEach(episode=>{ items.forEach(episode=>{
@@ -59,13 +59,13 @@ class PodcastFeed {
// const duration = getMp3Duration(`../episodes/s${zero_pad_season}/s${zero_pad_season}e${episode_data.episode}.mp3`) // const duration = getMp3Duration(`../episodes/s${zero_pad_season}/s${zero_pad_season}e${episode_data.episode}.mp3`)
/* loop over data and add to feed */ /* loop over data and add to feed */
feed.addItem({ feed.addItem({
title: `S${zero_pad_season}E${episode_data.episode}: ${episode_data.title}`, title: `${episode_data.podcast.title}`,
description: episode.content, description: episode.content,
url: episode.url, // link to the item url: episode.url, // link to the item
guid: episode.url, // optional - defaults to url guid: episode.url, // optional - defaults to url
date: episode_data.date, // any format that js Date can parse. date: episode_data.date, // any format that js Date can parse.
// enclosure : {url:`${data.site.url}/episodes/s${zero_pad_season}/s${zero_pad_season}e${episode_data.episode}.mp3`}, // optional enclosure // enclosure : {url:`${data.site.url}/episodes/s${zero_pad_season}/s${zero_pad_season}e${episode_data.episode}.mp3`}, // optional enclosure
enclosure : {url:`${PODCAST_CDN_ROOT}/s${zero_pad_season}e${episode_data.episode}.mp3`}, // optional enclosure enclosure : {url:`${episode_data.podcast.url}`}, // optional enclosure
// itunesDuration: duration, // itunesDuration: duration,
}); });
}) })