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

@@ -1,14 +1,12 @@
<!doctype html>
<head>
<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>
<link rel="stylesheet" href="/css/style.css">
{{#each stylesheets}}
<link rel="stylesheet" href="{{this}}">
{{/each}}
<script>
console.log('url with filter', '{{url "/css/style.css"}}')
</script>
</head>
<body class="{{{bodyClasses}}}">
<nav class="navbar navbar-expand-lg bg-body-tertiary">

View File

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

View File

@@ -1,6 +1,5 @@
---
layout: base
bodyClasses: "season-{{{season}}}"
layout: "base"
eleventyComputed:
bodyClasses: "episode season-{{season}}"
---
@@ -10,9 +9,9 @@ eleventyComputed:
<div class="row">
<div class="col"><img src="{{{this.url}}}../image.jpg" class="img-fluid"></div>
<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>
<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.
</audio>
<div class="d-flex felx-wrap m-1 gap-1">

View File

@@ -14,7 +14,7 @@
</section>
<section>
{{#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}}
</section>
</div>
@@ -25,9 +25,9 @@
{{#each (latest_episodes collections.episode)}}
<div class="col">
<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">
<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>
<span class="card-subtitle mb-2 text-body-secondary"> {{{date this.date "ddd, MMM D, YYYY, LT"}}}</h6>
</div>

View File

@@ -4,15 +4,26 @@ layout: base
<h1>Season {{season}}</h1>
{{{content}}}
<ul>
{{#each collections.episode}}
{{#ifEquals data.season ../season}}
<li>
<h2>
<a href="{{{this.page.url}}}">
{{{formatSeasonEpisode data.season data.episode }}}: {{{ data.title }}}
</a>
</h2>
{{#each episodes}}
<li class="card my-2">
<div class="card-body">
<h5 class="card-title">
<a href="{{{this.page.url}}}">
{{{ data.title }}}
</a>
</h5>
<p class="card-text">Season {{data.season}}, Episode {{data.episode}}</p>
</div>
</li>
{{/ifEquals}}
{{/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`
});
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
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`)
/* loop over data and add to feed */
feed.addItem({
title: `S${zero_pad_season}E${episode_data.episode}: ${episode_data.title}`,
title: `${episode_data.podcast.title}`,
description: episode.content,
url: episode.url, // link to the item
guid: episode.url, // optional - defaults to url
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:`${PODCAST_CDN_ROOT}/s${zero_pad_season}e${episode_data.episode}.mp3`}, // optional enclosure
enclosure : {url:`${episode_data.podcast.url}`}, // optional enclosure
// itunesDuration: duration,
});
})