Add "More podcast episodes with..." block

If a guest has been on multiple podcast episodes, show a list on an
episode page linking to their other episodes.

For this to work, each page needs `data.podcast_episodes` to be in
scope, so `use: [podcast_episodes]` needs to be added to the episode.

Whilst I could do this only for the specific episodes, adding it to all
the episodes will make it clearer in the future that I need to have it
instead of forgetting to add it and wondering why it doesn't work.
This commit is contained in:
Oliver Davies 2025-01-02 01:07:54 +00:00
parent e1c216fa91
commit 076802cb5b
27 changed files with 55 additions and 0 deletions

View file

@ -0,0 +1,22 @@
{% set other_episodes = [] %}
{% for episode in all_episodes %}
{% if episode.guests|first is same as(guest) and episode.topic is not same as(topic) %}
{% set other_episodes = other_episodes|merge([episode]) %}
{% endif %}
{% endfor %}
{% if other_episodes is not empty %}
<section>
<h2>Other episodes with {{ guest }}</h2>
<ul>
{% for episode in other_episodes %}
<li>
<a href="{{ episode.url|trim('/', 'right') }}">{{ episode.topic }}</a>
- {{ episode.date|date('jS F Y') }}
</li>
{% endfor %}
</ul>
</section>
{% endif %}

View file

@ -75,4 +75,12 @@
{% endfor %} {% endfor %}
<ul> <ul>
</div> </div>
{% for guest in page.guests %}
{% include 'podcast/other-episodes.html.twig' with {
all_episodes: data.podcast_episodes,
guest,
topic: page.topic,
} only %}
{% endfor %}
{% endblock %} {% endblock %}

View file

@ -31,6 +31,7 @@ transistor:
episode_filename: 1-retrofit.mp3 episode_filename: 1-retrofit.mp3
file_size: 20523767 file_size: 20523767
duration: 0:43:52 duration: 0:43:52
use: [podcast_episodes]
--- ---
In this episode, Oliver is joined by Matt Glaman to discuss Retrofit. A tool that makes it easier to upgrade Drupal websites by allowing legacy Drupal code to run on any version of Drupal. In this episode, Oliver is joined by Matt Glaman to discuss Retrofit. A tool that makes it easier to upgrade Drupal websites by allowing legacy Drupal code to run on any version of Drupal.

View file

@ -31,6 +31,7 @@ links:
episode_filename: 10-symfonycasts.mp3 episode_filename: 10-symfonycasts.mp3
file_size: 26892969 file_size: 26892969
duration: 0:53:59 duration: 0:53:59
use: [podcast_episodes]
--- ---
This week, Oliver is joined by Ryan Weaver - Symfony Developer, Symfony core team member and Writer for SymfonyCasts to discuss the recent developments in Twig templates, SymfonyCasts, release cycles, and similarities between the Drupal and Symfony projects and communities. This week, Oliver is joined by Ryan Weaver - Symfony Developer, Symfony core team member and Writer for SymfonyCasts to discuss the recent developments in Twig templates, SymfonyCasts, release cycles, and similarities between the Drupal and Symfony projects and communities.

View file

@ -29,6 +29,7 @@ talking_points:
episode_filename: 11-something-useful.mp3 episode_filename: 11-something-useful.mp3
file_size: 30369780 file_size: 30369780
duration: 1:02:28 duration: 1:02:28
use: [podcast_episodes]
--- ---
This week, Oliver is joined by Mark Conroy - Director of Development at Annertech - to discuss all things front-end and how to build something useful in one day. This week, Oliver is joined by Mark Conroy - Director of Development at Annertech - to discuss all things front-end and how to build something useful in one day.

View file

@ -16,6 +16,7 @@ talking_points: []
episode_filename: 12-docker.mp3 episode_filename: 12-docker.mp3
file_size: 28021353 file_size: 28021353
duration: 0:51:48 duration: 0:51:48
use: [podcast_episodes]
--- ---
This week, Oliver is joined by Nick Janetakis - a Software Developer, Docker Captain and Teacher who focuses on building and deploying web apps - to discuss Docker, content creation and more. This week, Oliver is joined by Nick Janetakis - a Software Developer, Docker Captain and Teacher who focuses on building and deploying web apps - to discuss Docker, content creation and more.

View file

@ -57,6 +57,7 @@ chapters:
episode_filename: 13-drupal-commerce.mp3 episode_filename: 13-drupal-commerce.mp3
file_size: 30353061 file_size: 30353061
duration: 1:03:36 duration: 1:03:36
use: [podcast_episodes]
--- ---
This week, Oliver is joined by Ryan Szrama, CEO of Centarro, to discuss Drupal Commerce, Commerce Kickstart, Mario Kart and the dreaded `cache_form` table. This week, Oliver is joined by Ryan Szrama, CEO of Centarro, to discuss Drupal Commerce, Commerce Kickstart, Mario Kart and the dreaded `cache_form` table.

View file

@ -39,6 +39,7 @@ chapters: []
episode_filename: 14-diffy.mp3 episode_filename: 14-diffy.mp3
file_size: 22892297 file_size: 22892297
duration: 0:46:25 duration: 0:46:25
use: [podcast_episodes]
--- ---
This week, Oliver discusses visual regression testing and Diffy with Yuri Gerasymov. This week, Oliver discusses visual regression testing and Diffy with Yuri Gerasymov.

View file

@ -45,6 +45,7 @@ chapters: []
episode_filename: 15-ddd.mp3 episode_filename: 15-ddd.mp3
file_size: 24444165 file_size: 24444165
duration: 0:56:08 duration: 0:56:08
use: [podcast_episodes]
--- ---
This week, Oliver discusses Domain-Driven Design with PHP UK speaker, Rob Allen. This week, Oliver discusses Domain-Driven Design with PHP UK speaker, Rob Allen.

View file

@ -14,6 +14,7 @@ chapters: []
episode_filename: 16-health-fitness-weight.mp3 episode_filename: 16-health-fitness-weight.mp3
file_size: 22258088 file_size: 22258088
duration: 0:42:06 duration: 0:42:06
use: [podcast_episodes]
--- ---
This week, Oliver discusses health, fitness and weight loss with Personal Trainer and Weight Loss Coach, Simon Graham. This week, Oliver discusses health, fitness and weight loss with Personal Trainer and Weight Loss Coach, Simon Graham.

View file

@ -20,6 +20,7 @@ chapters: []
episode_filename: 17-automation-linux.mp3 episode_filename: 17-automation-linux.mp3
file_size: 26449557 file_size: 26449557
duration: 0:54:23 duration: 0:54:23
use: [podcast_episodes]
--- ---
This week, Oliver is joined by the Monospace Mentor - Jochen Lillich. This week, Oliver is joined by the Monospace Mentor - Jochen Lillich.

View file

@ -18,6 +18,7 @@ chapters: []
episode_filename: 18-lego-robotics.mp3 episode_filename: 18-lego-robotics.mp3
file_size: 25854381 file_size: 25854381
duration: 0:51:06 duration: 0:51:06
use: [podcast_episodes]
--- ---
This week, Oliver is joined by Andy Hoang. They discuss teaching children to code with LEGO and robotics, and how to leverage open-source software. This week, Oliver is joined by Andy Hoang. They discuss teaching children to code with LEGO and robotics, and how to leverage open-source software.

View file

@ -24,6 +24,7 @@ chapters: []
episode_filename: 19-sfc-static-drupal.mp3 episode_filename: 19-sfc-static-drupal.mp3
file_size: 15153981 file_size: 15153981
duration: 0:30:58 duration: 0:30:58
use: [podcast_episodes]
--- ---
In this episode, Oliver speaks with Sam Mortenson (samuelmortenson) about single file components in Drupal and Tome (a Drupal-based static website generator). In this episode, Oliver speaks with Sam Mortenson (samuelmortenson) about single file components in Drupal and Tome (a Drupal-based static website generator).

View file

@ -23,6 +23,7 @@ transistor:
episode_filename: 2-alternate-realities.mp3 episode_filename: 2-alternate-realities.mp3
file_size: 19346455 file_size: 19346455
duration: 0:43:51 duration: 0:43:51
use: [podcast_episodes]
--- ---
In this episode, Oliver is joined by Panagiotis Moutsopoulos to discuss about the whole first-time DrupalCon experience of Lille (France) and more specifically, his session Drupals Alternate Realities A BoF session presenting some history but mainly the different ways to tackle a problem in Drupal using different methodologies. In this episode, Oliver is joined by Panagiotis Moutsopoulos to discuss about the whole first-time DrupalCon experience of Lille (France) and more specifically, his session Drupals Alternate Realities A BoF session presenting some history but mainly the different ways to tackle a problem in Drupal using different methodologies.

View file

@ -18,6 +18,7 @@ chapters: []
episode_filename: 20-bootcamps.mp3 episode_filename: 20-bootcamps.mp3
file_size: 23938605 file_size: 23938605
duration: 0:48:12 duration: 0:48:12
use: [podcast_episodes]
--- ---
In this episode, Oliver speaks with George Gordon - a graduate from the School of Code who was recently employed in their first Junior Developer role - about their move into tech and software development, their experiences at hack days and meetups, and their introduction to Drupal. In this episode, Oliver speaks with George Gordon - a graduate from the School of Code who was recently employed in their first Junior Developer role - about their move into tech and software development, their experiences at hack days and meetups, and their introduction to Drupal.

View file

@ -28,6 +28,7 @@ chapters: []
episode_filename: 21-violinist.mp3 episode_filename: 21-violinist.mp3
file_size: 30666885 file_size: 30666885
duration: 1:01:55 duration: 1:01:55
use: [podcast_episodes]
--- ---
Oliver is joined again by Eirik Morland (the first returning guest) to discuss recent improvements and enhancements to Violinist, such as Team support (a.k.a. multi-user subscriptions). Oliver is joined again by Eirik Morland (the first returning guest) to discuss recent improvements and enhancements to Violinist, such as Team support (a.k.a. multi-user subscriptions).

View file

@ -28,6 +28,7 @@ chapters: []
episode_filename: 22-static-analysis.mp3 episode_filename: 22-static-analysis.mp3
file_size: 25543869 file_size: 25543869
duration: 0:58:55 duration: 0:58:55
use: [podcast_episodes]
--- ---
In this episode, Oliver is joined by Dave Liddament - Director at Lamp Bristol and Organiser of PHP South West - to discuss PHPStan and static analysis. In this episode, Oliver is joined by Dave Liddament - Director at Lamp Bristol and Organiser of PHP South West - to discuss PHPStan and static analysis.

View file

@ -20,6 +20,7 @@ chapters: []
episode_filename: 23-eca.mp3 episode_filename: 23-eca.mp3
file_size: 21181821 file_size: 21181821
duration: 0:51:53 duration: 0:51:53
use: [podcast_episodes]
--- ---
In this episode, Oliver is joined by Jürgen Haas to discuss the Drupal Event, Condition, Action (ECA) module. In this episode, Oliver is joined by Jürgen Haas to discuss the Drupal Event, Condition, Action (ECA) module.

View file

@ -22,6 +22,7 @@ chapters: []
episode_filename: 24-generative-ai.mp3 episode_filename: 24-generative-ai.mp3
file_size: 29900397 file_size: 29900397
duration: 00:58:33 duration: 00:58:33
use: [podcast_episodes]
--- ---
In this episode, Oliver is joined by Chris Ballard to discuss his recent talk at PHP South West about using generative AI in PHP, speaking at meetups and live coding. In this episode, Oliver is joined by Chris Ballard to discuss his recent talk at PHP South West about using generative AI in PHP, speaking at meetups and live coding.

View file

@ -24,6 +24,7 @@ chapters: []
episode_filename: 25-laravel-prompts.mp3 episode_filename: 25-laravel-prompts.mp3
file_size: 20523767 file_size: 20523767
duration: 1:02:41 duration: 1:02:41
use: [podcast_episodes]
--- ---
In this episode, Oliver and Jess Archer (Engineering Team Lead at Laravel) discuss Laravel Prompts and Drush, PHP, Linux and working on the command line with tools like Neovim and tmux. In this episode, Oliver and Jess Archer (Engineering Team Lead at Laravel) discuss Laravel Prompts and Drush, PHP, Linux and working on the command line with tools like Neovim and tmux.

View file

@ -27,6 +27,7 @@ transistor:
episode_filename: 3-community-engagement.mp3 episode_filename: 3-community-engagement.mp3
file_size: 24882117 file_size: 24882117
duration: 0:50:39 duration: 0:50:39
use: [podcast_episodes]
--- ---
This week, Oliver is joined by Niklas Franke to discuss DrupalCon Lille, contributing to Drupal as a non-technical enthusiast, the Splash Awards and the Drupal community in Germany. This week, Oliver is joined by Niklas Franke to discuss DrupalCon Lille, contributing to Drupal as a non-technical enthusiast, the Splash Awards and the Drupal community in Germany.

View file

@ -35,4 +35,5 @@ links:
episode_filename: 4-oxfam.mp3 episode_filename: 4-oxfam.mp3
file_size: 21505533 file_size: 21505533
duration: 0:47:36 duration: 0:47:36
use: [podcast_episodes]
--- ---

View file

@ -29,4 +29,5 @@ links:
episode_filename: 5-technical-debt.mp3 episode_filename: 5-technical-debt.mp3
file_size: 23248532 file_size: 23248532
duration: 0:52:22 duration: 0:52:22
use: [podcast_episodes]
--- ---

View file

@ -35,6 +35,7 @@ links:
episode_filename: 6-tuis-clis.mp3 episode_filename: 6-tuis-clis.mp3
file_size: 22071243 file_size: 22071243
duration: 0:53:17 duration: 0:53:17
use: [podcast_episodes]
--- ---
In this week's episode, Oliver is joined by Dan Leech to discuss building command-line applications and TUIs with PHP based on Dan's open-source projects - Phpactor, PHPBench and, most recently, PHP-TUI. In this week's episode, Oliver is joined by Dan Leech to discuss building command-line applications and TUIs with PHP based on Dan's open-source projects - Phpactor, PHPBench and, most recently, PHP-TUI.

View file

@ -33,6 +33,7 @@ links:
episode_filename: 7-testing-legacy.mp3 episode_filename: 7-testing-legacy.mp3
file_size: 24294452 file_size: 24294452
duration: 0:53:23 duration: 0:53:23
use: [podcast_episodes]
--- ---
Oliver and Mike discuss e-commerce, legacy code, technical debt, automated testing, test-driven development, refactoring, code vs. no-code solutions, and Mike's recent talk at PHP South West in Bristol. Oliver and Mike discuss e-commerce, legacy code, technical debt, automated testing, test-driven development, refactoring, code vs. no-code solutions, and Mike's recent talk at PHP South West in Bristol.

View file

@ -25,6 +25,7 @@ links:
episode_filename: 8-violinist.mp3 episode_filename: 8-violinist.mp3
file_size: 27664298 file_size: 27664298
duration: 1:00:01 duration: 1:00:01
use: [podcast_episodes]
--- ---
Oliver and Eirik Morland discuss automated dependency updates with Violinist, PHP and Composer, why automation is good, and focusing on providing value for clients and customers. Oliver and Eirik Morland discuss automated dependency updates with Violinist, PHP and Composer, why automation is good, and focusing on providing value for clients and customers.

View file

@ -31,6 +31,7 @@ transistor:
episode_filename: 9-drupal-association.mp3 episode_filename: 9-drupal-association.mp3
file_size: 36650781 file_size: 36650781
duration: 1:06:23 duration: 1:06:23
use: [podcast_episodes]
--- ---
This week, Oliver is joined by Tim Lehnen - the CTO of the Drupal Association. This week, Oliver is joined by Tim Lehnen - the CTO of the Drupal Association.