From 3a90f812fadb2a64bfc1435d70a40a41194bf89e Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Fri, 12 Sep 2025 00:00:47 +0200 Subject: [PATCH 01/26] feat(podcasts): add data --- podcasts/khan.jsonld | 90 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 podcasts/khan.jsonld diff --git a/podcasts/khan.jsonld b/podcasts/khan.jsonld new file mode 100644 index 00000000..d1ed9585 --- /dev/null +++ b/podcasts/khan.jsonld @@ -0,0 +1,90 @@ +{ + "@context": { + "@vocab": "https://schema.org/" + }, + "@type": "CreativeWorkSeries", + "name": "Star Trek: Khan", + "inLanguage": "en", + "isBasedOn": { + "@type": "TVSeries", + "@id": "https://bittersmann.de/startrek/series/tos", + "name": "Star Trek: The Original Series", + "identifier": "TOS", + "inLanguage": "en", + "creator": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#GeneRoddenberry", + "name": "Gene Roddenberry" + } + }, + "creator": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#CasperKelly", + "name": "Casper Kelly" + }, + "subjectOf": [ + { + "@type": "Webpage", + "inLanguage": "en", + "publisher": { + "@type": "Organization", + "@id": "https://bittersmann.de/startrek/organizations#Wikipedia", + "name": "Wikipedia" + }, + "url": "https://en.wikipedia.org/wiki/Star_Trek:_Very_Short_Treks" + } + ], + "episode": [ + { + "@type": "CreativeWork", + "@id": "https://bittersmann.de/startrek/podcasts/khan#1", + "episodeNumber": "1", + "name": "Paradise", + "datePublished": "2025-09-08", + "director": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#FredGreenhalgh", + "name": "Fred Greenhalgh" + }, + "author": [ + { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#KirstenBeyer", + "name": "Kirsten Beyer" + }, + { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#DavidMack", + "name": "David Mack" + } + ], + "contributor": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#NicholasMeyer", + "name": "Nicholas Meyer" + }, + "video": { + "@type": "VideoObject", + "embedUrl": "https://www.youtube-nocookie.com/embed/UDOn6BBis_8" + }, + "abstract": { + "@language": "en", + "@value": "Marooned by Captain James T. Kirk on Ceti Alpha V, Khan Noonien Singh and his followers begin building a new civilization, but this strange new world harbors a number of secrets." + }, + "review": { + "@type": "Review", + "inLanguage": "en", + "creator": { + "@type": "Organization", + "@id": "https://bittersmann.de/startrek/organizations#TrekCulture", + "name": "TrekCulture" + }, + "datePublished": "2025-09-10", + "video": { + "@type": "AudioObject", + "embedUrl": "https://shows.acast.com/d5eda24e-db83-4d5f-a814-c968821c56bf/episodes/68c1915205de5daa22916262?" + } + } + } + ] +} From 8eb66800a119ea60f728c8fead610babd5c5a102 Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Fri, 12 Sep 2025 22:37:17 +0200 Subject: [PATCH 02/26] feat(podcasts): add review --- podcasts/khan.jsonld | 41 +++++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/podcasts/khan.jsonld b/podcasts/khan.jsonld index d1ed9585..c928de96 100644 --- a/podcasts/khan.jsonld +++ b/podcasts/khan.jsonld @@ -71,20 +71,37 @@ "@language": "en", "@value": "Marooned by Captain James T. Kirk on Ceti Alpha V, Khan Noonien Singh and his followers begin building a new civilization, but this strange new world harbors a number of secrets." }, - "review": { - "@type": "Review", - "inLanguage": "en", - "creator": { - "@type": "Organization", - "@id": "https://bittersmann.de/startrek/organizations#TrekCulture", - "name": "TrekCulture" + "review": [ + { + "@type": "Review", + "inLanguage": "en", + "creator": { + "@type": "Organization", + "@id": "https://bittersmann.de/startrek/organizations#TrekCulture", + "name": "TrekCulture" + }, + "datePublished": "2025-09-10", + "video": { + "@type": "AudioObject", + "embedUrl": "https://shows.acast.com/d5eda24e-db83-4d5f-a814-c968821c56bf/episodes/68c1915205de5daa22916262?" + } }, - "datePublished": "2025-09-10", - "video": { - "@type": "AudioObject", - "embedUrl": "https://shows.acast.com/d5eda24e-db83-4d5f-a814-c968821c56bf/episodes/68c1915205de5daa22916262?" + { + "@type": "Review", + "inLanguage": "en", + "name": "Second Opinion with Dr. Trek", + "creator": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#LarryNemecek", + "name": "Larry Nemecek" + }, + "datePublished": "2025-09-07", + "video": { + "@type": "VideoObject", + "embedUrl": "https://www.youtube-nocookie.com/embed/tkYv182puek" + } } - } + ] } ] } From 00f9117cac1d217537d26b01e6f0d7c84f28ff66 Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Mon, 13 Oct 2025 21:50:25 +0200 Subject: [PATCH 03/26] feat(podcasts): add data --- podcasts/khan.jsonld | 298 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 294 insertions(+), 4 deletions(-) diff --git a/podcasts/khan.jsonld b/podcasts/khan.jsonld index c928de96..30fe652a 100644 --- a/podcasts/khan.jsonld +++ b/podcasts/khan.jsonld @@ -67,10 +67,16 @@ "@type": "VideoObject", "embedUrl": "https://www.youtube-nocookie.com/embed/UDOn6BBis_8" }, - "abstract": { - "@language": "en", - "@value": "Marooned by Captain James T. Kirk on Ceti Alpha V, Khan Noonien Singh and his followers begin building a new civilization, but this strange new world harbors a number of secrets." - }, + "abstract": [ + { + "@language": "en", + "@value": "Marooned by Captain James T. Kirk on Ceti Alpha V, Khan Noonien Singh and his followers begin building a new civilization, but this strange new world harbors a number of secrets." + }, + { + "@language": "de", + "@value": "Von Captain James T. Kirk auf Ceti Alpha V ausgesetzt, beginnen Khan Noonien Singh und seine Anhänger mit dem Aufbau einer neuen Zivilisation – doch diese fremde Welt birgt zahlreiche Geheimnisse." + } + ], "review": [ { "@type": "Review", @@ -102,6 +108,290 @@ } } ] + }, + { + "@type": "CreativeWork", + "@id": "https://bittersmann.de/startrek/podcasts/khan#2", + "episodeNumber": "2", + "name": "Scheherazade", + "datePublished": "2025-09-15", + "director": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#FredGreenhalgh", + "name": "Fred Greenhalgh" + }, + "author": [ + { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#KirstenBeyer", + "name": "Kirsten Beyer" + }, + { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#DavidMack", + "name": "David Mack" + } + ], + "contributor": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#NicholasMeyer", + "name": "Nicholas Meyer" + }, + "video": { + "@type": "VideoObject", + "embedUrl": "https://www.youtube-nocookie.com/embed/7cuTIdxpZSY" + }, + "abstract": [ + { + "@language": "en", + "@value": "As they acclimate to the beauty and promise of their new home, Khan and his people also encounter deadly dangers waiting to catch them unawares." + }, + { + "@language": "de", + "@value": "Während sie sich an die Schönheit und Verheißung ihrer neuen Heimat gewöhnen, stoßen Khan und seine Gefolgsleute auch auf tödliche Gefahren, die sie unvorbereitet treffen." + } + ] + }, + { + "@type": "CreativeWork", + "@id": "https://bittersmann.de/startrek/podcasts/khan#3", + "episodeNumber": "3", + "name": "Do Your Worst", + "datePublished": "2025-09-22", + "director": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#FredGreenhalgh", + "name": "Fred Greenhalgh" + }, + "author": [ + { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#KirstenBeyer", + "name": "Kirsten Beyer" + }, + { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#DavidMack", + "name": "David Mack" + } + ], + "contributor": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#NicholasMeyer", + "name": "Nicholas Meyer" + }, + "video": { + "@type": "VideoObject", + "embedUrl": "https://www.youtube-nocookie.com/embed/z2kSyl0un-c" + }, + "abstract": [ + { + "@language": "en", + "@value": "Khan’s nascent colony celebrates its first pregnancy, but they’ve also suffered several losses to their number while a new threat to the entire planet reveals itself." + }, + { + "@language": "de", + "@value": "Khans junge Kolonie feiert ihre erste Schwangerschaft, hat jedoch auch bereits mehrere Verluste erlitten – während sich zugleich eine neue Bedrohung für den gesamten Planeten offenbart." + } + ] + }, + { + "@type": "CreativeWork", + "@id": "https://bittersmann.de/startrek/podcasts/khan#4", + "episodeNumber": "4", + "name": "Magical Thinking", + "datePublished": "2025-09-29", + "director": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#FredGreenhalgh", + "name": "Fred Greenhalgh" + }, + "author": [ + { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#KirstenBeyer", + "name": "Kirsten Beyer" + }, + { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#DavidMack", + "name": "David Mack" + } + ], + "contributor": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#NicholasMeyer", + "name": "Nicholas Meyer" + }, + "video": { + "@type": "VideoObject", + "embedUrl": "https://www.youtube-nocookie.com/embed/VrDZ7x-6W5U" + }, + "abstract": [ + { + "@language": "en", + "@value": "Marla McGivers identifies an urgent threat to the colony. Khan grapples with leading his followers through increasingly difficult times, and a startling revelation from Marla." + }, + { + "@language": "de", + "@value": "Marla McGivers erkennt eine dringende Bedrohung für die Kolonie. Khan ringt damit, seine Gefolgsleute durch zunehmend schwierige Zeiten zu führen – und wird zudem mit einer erschütternden Offenbarung Marlas konfrontiert." + } + ] + }, + { + "@type": "CreativeWork", + "@id": "https://bittersmann.de/startrek/podcasts/khan#5", + "episodeNumber": "5", + "name": "Imagination’s Limits", + "datePublished": "2025-10-06", + "director": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#FredGreenhalgh", + "name": "Fred Greenhalgh" + }, + "author": [ + { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#KirstenBeyer", + "name": "Kirsten Beyer" + }, + { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#DavidMack", + "name": "David Mack" + } + ], + "contributor": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#NicholasMeyer", + "name": "Nicholas Meyer" + }, + "video": { + "@type": "VideoObject", + "embedUrl": "https://www.youtube-nocookie.com/embed/3iO16CEe2hY" + }, + "abstract": [ + { + "@language": "en", + "@value": "Khan and his people prepare for inescapable global calamity, and learn they are no longer alone on this world. Are these mysterious new arrivals enemies, or possible allies?" + } + ] + }, + { + "@type": "CreativeWork", + "@id": "https://bittersmann.de/startrek/podcasts/khan#6", + "episodeNumber": "6", + "name": "Paradise", + "datePublished": "2025-10-13", + "director": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#FredGreenhalgh", + "name": "Fred Greenhalgh" + }, + "author": [ + { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#KirstenBeyer", + "name": "Kirsten Beyer" + }, + { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#DavidMack", + "name": "David Mack" + } + ], + "contributor": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#NicholasMeyer", + "name": "Nicholas Meyer" + } + }, + { + "@type": "CreativeWork", + "@id": "https://bittersmann.de/startrek/podcasts/khan#7", + "episodeNumber": "7", + "name": "Paradise", + "datePublished": "2025-10-20", + "director": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#FredGreenhalgh", + "name": "Fred Greenhalgh" + }, + "author": [ + { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#KirstenBeyer", + "name": "Kirsten Beyer" + }, + { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#DavidMack", + "name": "David Mack" + } + ], + "contributor": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#NicholasMeyer", + "name": "Nicholas Meyer" + } + }, + { + "@type": "CreativeWork", + "@id": "https://bittersmann.de/startrek/podcasts/khan#8", + "episodeNumber": "8", + "name": "Paradise", + "datePublished": "2025-10-27", + "director": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#FredGreenhalgh", + "name": "Fred Greenhalgh" + }, + "author": [ + { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#KirstenBeyer", + "name": "Kirsten Beyer" + }, + { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#DavidMack", + "name": "David Mack" + } + ], + "contributor": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#NicholasMeyer", + "name": "Nicholas Meyer" + } + }, + { + "@type": "CreativeWork", + "@id": "https://bittersmann.de/startrek/podcasts/khan#9", + "episodeNumber": "9", + "name": "Paradise", + "datePublished": "2025-11-03", + "director": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#FredGreenhalgh", + "name": "Fred Greenhalgh" + }, + "author": [ + { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#KirstenBeyer", + "name": "Kirsten Beyer" + }, + { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#DavidMack", + "name": "David Mack" + } + ], + "contributor": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#NicholasMeyer", + "name": "Nicholas Meyer" + } } ] } From c08a6f68be9f5e7c9eeba9fa75c817a713e31bf3 Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Mon, 13 Oct 2025 22:43:18 +0200 Subject: [PATCH 04/26] feat(podcasts): correct data --- podcasts/khan.jsonld | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/podcasts/khan.jsonld b/podcasts/khan.jsonld index 30fe652a..4e5c6faa 100644 --- a/podcasts/khan.jsonld +++ b/podcasts/khan.jsonld @@ -17,11 +17,6 @@ "name": "Gene Roddenberry" } }, - "creator": { - "@type": "Person", - "@id": "https://bittersmann.de/startrek/people#CasperKelly", - "name": "Casper Kelly" - }, "subjectOf": [ { "@type": "Webpage", @@ -31,7 +26,17 @@ "@id": "https://bittersmann.de/startrek/organizations#Wikipedia", "name": "Wikipedia" }, - "url": "https://en.wikipedia.org/wiki/Star_Trek:_Very_Short_Treks" + "url": "https://en.wikipedia.org/wiki/Star_Trek:_Khan" + } + { + "@type": "Webpage", + "inLanguage": "de", + "publisher": { + "@type": "Organization", + "@id": "https://bittersmann.de/startrek/organizations#Wikipedia", + "name": "Wikipedia" + }, + "url": "https://de.wikipedia.org/wiki/Star_Trek:_Khan" } ], "episode": [ From 5a7018a35a4314c55e9280e91f20609c79743a49 Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Fri, 17 Oct 2025 09:30:42 +0200 Subject: [PATCH 05/26] feat(podcasts): add data --- podcasts/khan.jsonld | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/podcasts/khan.jsonld b/podcasts/khan.jsonld index 4e5c6faa..b331856c 100644 --- a/podcasts/khan.jsonld +++ b/podcasts/khan.jsonld @@ -309,7 +309,17 @@ "@type": "Person", "@id": "https://bittersmann.de/startrek/people#NicholasMeyer", "name": "Nicholas Meyer" - } + }, + "video": { + "@type": "VideoObject", + "embedUrl": "https://www.youtube-nocookie.com/embed/Tg91tPYefh4" + }, + "abstract": [ + { + "@language": "en", + "@value": "Khan and his people prepare for inescapable global calamity, and learn they are no longer alone on this world. Are these mysterious new arrivals enemies, or possible allies?" + } + ] }, { "@type": "CreativeWork", From d397794e353f5daaffbbd6804a98effd921a779f Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Fri, 17 Oct 2025 21:40:24 +0200 Subject: [PATCH 06/26] feat(khan): rename folder --- {podcasts => audiodrama}/khan.jsonld | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {podcasts => audiodrama}/khan.jsonld (100%) diff --git a/podcasts/khan.jsonld b/audiodrama/khan.jsonld similarity index 100% rename from podcasts/khan.jsonld rename to audiodrama/khan.jsonld From f65af8a8278b72acd0920300d62a7eb29a3c28b5 Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Fri, 17 Oct 2025 22:15:01 +0200 Subject: [PATCH 07/26] fix(khan): correct syntax --- audiodrama/khan.jsonld | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/audiodrama/khan.jsonld b/audiodrama/khan.jsonld index b331856c..3d27801b 100644 --- a/audiodrama/khan.jsonld +++ b/audiodrama/khan.jsonld @@ -27,7 +27,7 @@ "name": "Wikipedia" }, "url": "https://en.wikipedia.org/wiki/Star_Trek:_Khan" - } + }, { "@type": "Webpage", "inLanguage": "de", From 68928dda53beb93db5b8f8c77cc56e5e16f858c7 Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Sat, 18 Oct 2025 07:58:43 +0200 Subject: [PATCH 08/26] feat(khan): update titles --- audiodrama/khan.jsonld | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/audiodrama/khan.jsonld b/audiodrama/khan.jsonld index 3d27801b..6316066a 100644 --- a/audiodrama/khan.jsonld +++ b/audiodrama/khan.jsonld @@ -286,7 +286,7 @@ "@type": "CreativeWork", "@id": "https://bittersmann.de/startrek/podcasts/khan#6", "episodeNumber": "6", - "name": "Paradise", + "name": "The Good of All", "datePublished": "2025-10-13", "director": { "@type": "Person", @@ -325,7 +325,6 @@ "@type": "CreativeWork", "@id": "https://bittersmann.de/startrek/podcasts/khan#7", "episodeNumber": "7", - "name": "Paradise", "datePublished": "2025-10-20", "director": { "@type": "Person", @@ -354,7 +353,6 @@ "@type": "CreativeWork", "@id": "https://bittersmann.de/startrek/podcasts/khan#8", "episodeNumber": "8", - "name": "Paradise", "datePublished": "2025-10-27", "director": { "@type": "Person", @@ -383,7 +381,6 @@ "@type": "CreativeWork", "@id": "https://bittersmann.de/startrek/podcasts/khan#9", "episodeNumber": "9", - "name": "Paradise", "datePublished": "2025-11-03", "director": { "@type": "Person", From c3d0460ce07df4c8a33dc9da2a7730e18060effc Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Wed, 22 Oct 2025 08:27:24 +0200 Subject: [PATCH 09/26] feat(khan): update data --- audiodrama/khan.jsonld | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/audiodrama/khan.jsonld b/audiodrama/khan.jsonld index 6316066a..d91d1c42 100644 --- a/audiodrama/khan.jsonld +++ b/audiodrama/khan.jsonld @@ -279,6 +279,10 @@ { "@language": "en", "@value": "Khan and his people prepare for inescapable global calamity, and learn they are no longer alone on this world. Are these mysterious new arrivals enemies, or possible allies?" + }, + { + "@language": "de", + "@value": "Khan und seine Anhänger bereiten sich auf eine unausweichliche globale Katastrophe vor und erkennen, dass sie auf diesem Planeten nicht mehr allein sind. Doch sind die geheimnisvollen Neuankömmlinge Feinde oder mögliche Verbündete?" } ] }, @@ -317,7 +321,11 @@ "abstract": [ { "@language": "en", - "@value": "Khan and his people prepare for inescapable global calamity, and learn they are no longer alone on this world. Are these mysterious new arrivals enemies, or possible allies?" + "@value": "Khan struggles to understand the Elboreans and their leader, Delmonda, while his own people’s distrust of the newcomers increases in the face of impending catastrophe." + }, + { + "@language": "de", + "@value": "Khan versucht, die Elboreanier und ihre Anführerin Delmonda zu verstehen, während sein eigenes Volk den Neuankömmlingen angesichts der drohenden Katastrophe immer misstrauischer gegenübersteht." } ] }, @@ -325,6 +333,7 @@ "@type": "CreativeWork", "@id": "https://bittersmann.de/startrek/podcasts/khan#7", "episodeNumber": "7", + "name": "I am Marla", "datePublished": "2025-10-20", "director": { "@type": "Person", @@ -347,7 +356,17 @@ "@type": "Person", "@id": "https://bittersmann.de/startrek/people#NicholasMeyer", "name": "Nicholas Meyer" - } + }, + "video": { + "@type": "VideoObject", + "embedUrl": "https://www.youtube-nocookie.com/embed/NfW8mZiFUf4" + }, + "abstract": [ + { + "@language": "en", + "@value": "Forging a tenuous alliance, Khan’s followers and the Elboreans work toward possible mutual survival. As Khan weighs hard choices affecting both peoples, tragedy strikes." + } + ] }, { "@type": "CreativeWork", From 4d0243e91bc45aa1e0b2c74254df7369c687ad1d Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Mon, 27 Oct 2025 03:05:04 +0100 Subject: [PATCH 10/26] feat: add Khan to main menu --- index.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/index.php b/index.php index 4935e3bd..7050df30 100644 --- a/index.php +++ b/index.php @@ -88,6 +88,14 @@
  • Movies
  • +
  • + Audio drama + +
  • Books
  • Timelines
  • From 55b7ed807afc7edc09076cda3e81b1419ed16162 Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Mon, 27 Oct 2025 03:05:48 +0100 Subject: [PATCH 11/26] feat(khan): add Khan page --- audiodrama/khan.php | 56 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 audiodrama/khan.php diff --git a/audiodrama/khan.php b/audiodrama/khan.php new file mode 100644 index 00000000..6b1473c0 --- /dev/null +++ b/audiodrama/khan.php @@ -0,0 +1,56 @@ + + + + + + + Star Trek: Khan + + + + + + +
    +

    + + + + + + + + + + +
    +
    + + + From e55e2fd4fbfa44b6122c925b8c1267922fc29b6e Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Mon, 27 Oct 2025 03:14:33 +0100 Subject: [PATCH 12/26] feat(khan): add header --- audiodrama/khan.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/audiodrama/khan.php b/audiodrama/khan.php index 6b1473c0..7dcc1e3c 100644 --- a/audiodrama/khan.php +++ b/audiodrama/khan.php @@ -1,4 +1,6 @@ @@ -14,6 +16,27 @@ +
    + +

    From 674e0f739208d9e20e3df8f455aba6ac72308c59 Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Mon, 27 Oct 2025 20:33:51 +0100 Subject: [PATCH 13/26] feat(khan): add episode data --- audiodrama/khan.jsonld | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/audiodrama/khan.jsonld b/audiodrama/khan.jsonld index d91d1c42..08102fac 100644 --- a/audiodrama/khan.jsonld +++ b/audiodrama/khan.jsonld @@ -372,6 +372,7 @@ "@type": "CreativeWork", "@id": "https://bittersmann.de/startrek/podcasts/khan#8", "episodeNumber": "8", + "name": "Original Sin", "datePublished": "2025-10-27", "director": { "@type": "Person", @@ -394,7 +395,17 @@ "@type": "Person", "@id": "https://bittersmann.de/startrek/people#NicholasMeyer", "name": "Nicholas Meyer" - } + }, + "video": { + "@type": "VideoObject", + "embedUrl": "https://www.youtube-nocookie.com/embed/Hegx5spD1MU" + }, + "abstract": [ + { + "@language": "en", + "@value": "Five years after disaster sweeps the planet, Khan’s people and the Elboreans prepare their joint, single venture toward salvation. Khan learns the truth behind their predicament." + } + ] }, { "@type": "CreativeWork", From 9241aa41c12621fbf6a2a9e1cbbb10ef31a1ccd9 Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Tue, 28 Oct 2025 01:54:32 +0100 Subject: [PATCH 14/26] feat(khan): add RDFa --- audiodrama/khan.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/audiodrama/khan.php b/audiodrama/khan.php index 7dcc1e3c..034fc1dd 100644 --- a/audiodrama/khan.php +++ b/audiodrama/khan.php @@ -42,10 +42,10 @@
    - - - - + + + + From 1c1f63e1dc2333a0c739eb78e0189566f35316c7 Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Tue, 28 Oct 2025 02:16:13 +0100 Subject: [PATCH 15/26] docs: comment condition in `else`, `endif`, `endforeach` --- series/index.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/series/index.php b/series/index.php index d6192531..160d8c41 100644 --- a/series/index.php +++ b/series/index.php @@ -377,7 +377,7 @@ function initial($name) {

    - +

    @@ -395,7 +395,7 @@ function initial($name) { () - + $source): ?> & @@ -409,15 +409,15 @@ function initial($name) { () - - + $source) ?> +

    - + - +
    - + + + + + + + From 557bd51f9d1fcb679a2da3f8fadc5745ac40f000 Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Tue, 28 Oct 2025 02:18:46 +0100 Subject: [PATCH 17/26] docs: comment condition in `else`, `endif`, `endforeach` --- series/index.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/series/index.php b/series/index.php index 160d8c41..15843d39 100644 --- a/series/index.php +++ b/series/index.php @@ -430,10 +430,10 @@ function initial($name) { - + - - + + + + + + + @@ -158,5 +173,8 @@ Wikipedia + From f3ab5f3464dde31c9eb9fdf59cfcafd2751ac846 Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Tue, 28 Oct 2025 02:49:38 +0100 Subject: [PATCH 19/26] style: fix indentation --- style.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/style.css b/style.css index 48e843de..a3f48192 100644 --- a/style.css +++ b/style.css @@ -303,7 +303,7 @@ ul:has(details) { } details:has([property="video"]) { - iframe { + iframe { margin-bottom: 0; } From b15c467088d2f3d79c61e8a9d75c5f261492d171 Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Tue, 28 Oct 2025 03:02:06 +0100 Subject: [PATCH 20/26] feat(khan): use podcast/audio type and properties --- audiodrama/khan.jsonld | 54 +++++++++++++++++++++--------------------- audiodrama/khan.php | 14 +++++------ 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/audiodrama/khan.jsonld b/audiodrama/khan.jsonld index 08102fac..099f337f 100644 --- a/audiodrama/khan.jsonld +++ b/audiodrama/khan.jsonld @@ -2,7 +2,7 @@ "@context": { "@vocab": "https://schema.org/" }, - "@type": "CreativeWorkSeries", + "@type": "PodcastSeries", "name": "Star Trek: Khan", "inLanguage": "en", "isBasedOn": { @@ -41,7 +41,7 @@ ], "episode": [ { - "@type": "CreativeWork", + "@type": "PodcastEpisode", "@id": "https://bittersmann.de/startrek/podcasts/khan#1", "episodeNumber": "1", "name": "Paradise", @@ -68,8 +68,8 @@ "@id": "https://bittersmann.de/startrek/people#NicholasMeyer", "name": "Nicholas Meyer" }, - "video": { - "@type": "VideoObject", + "audio": { + "@type": "AudioObject", "embedUrl": "https://www.youtube-nocookie.com/embed/UDOn6BBis_8" }, "abstract": [ @@ -92,7 +92,7 @@ "name": "TrekCulture" }, "datePublished": "2025-09-10", - "video": { + "audio": { "@type": "AudioObject", "embedUrl": "https://shows.acast.com/d5eda24e-db83-4d5f-a814-c968821c56bf/episodes/68c1915205de5daa22916262?" } @@ -115,7 +115,7 @@ ] }, { - "@type": "CreativeWork", + "@type": "PodcastEpisode", "@id": "https://bittersmann.de/startrek/podcasts/khan#2", "episodeNumber": "2", "name": "Scheherazade", @@ -142,8 +142,8 @@ "@id": "https://bittersmann.de/startrek/people#NicholasMeyer", "name": "Nicholas Meyer" }, - "video": { - "@type": "VideoObject", + "audio": { + "@type": "AudioObject", "embedUrl": "https://www.youtube-nocookie.com/embed/7cuTIdxpZSY" }, "abstract": [ @@ -158,7 +158,7 @@ ] }, { - "@type": "CreativeWork", + "@type": "PodcastEpisode", "@id": "https://bittersmann.de/startrek/podcasts/khan#3", "episodeNumber": "3", "name": "Do Your Worst", @@ -185,8 +185,8 @@ "@id": "https://bittersmann.de/startrek/people#NicholasMeyer", "name": "Nicholas Meyer" }, - "video": { - "@type": "VideoObject", + "audio": { + "@type": "AudioObject", "embedUrl": "https://www.youtube-nocookie.com/embed/z2kSyl0un-c" }, "abstract": [ @@ -201,7 +201,7 @@ ] }, { - "@type": "CreativeWork", + "@type": "PodcastEpisode", "@id": "https://bittersmann.de/startrek/podcasts/khan#4", "episodeNumber": "4", "name": "Magical Thinking", @@ -228,8 +228,8 @@ "@id": "https://bittersmann.de/startrek/people#NicholasMeyer", "name": "Nicholas Meyer" }, - "video": { - "@type": "VideoObject", + "audio": { + "@type": "AudioObject", "embedUrl": "https://www.youtube-nocookie.com/embed/VrDZ7x-6W5U" }, "abstract": [ @@ -244,7 +244,7 @@ ] }, { - "@type": "CreativeWork", + "@type": "PodcastEpisode", "@id": "https://bittersmann.de/startrek/podcasts/khan#5", "episodeNumber": "5", "name": "Imagination’s Limits", @@ -271,8 +271,8 @@ "@id": "https://bittersmann.de/startrek/people#NicholasMeyer", "name": "Nicholas Meyer" }, - "video": { - "@type": "VideoObject", + "audio": { + "@type": "AudioObject", "embedUrl": "https://www.youtube-nocookie.com/embed/3iO16CEe2hY" }, "abstract": [ @@ -287,7 +287,7 @@ ] }, { - "@type": "CreativeWork", + "@type": "PodcastEpisode", "@id": "https://bittersmann.de/startrek/podcasts/khan#6", "episodeNumber": "6", "name": "The Good of All", @@ -314,8 +314,8 @@ "@id": "https://bittersmann.de/startrek/people#NicholasMeyer", "name": "Nicholas Meyer" }, - "video": { - "@type": "VideoObject", + "audio": { + "@type": "AudioObject", "embedUrl": "https://www.youtube-nocookie.com/embed/Tg91tPYefh4" }, "abstract": [ @@ -330,7 +330,7 @@ ] }, { - "@type": "CreativeWork", + "@type": "PodcastEpisode", "@id": "https://bittersmann.de/startrek/podcasts/khan#7", "episodeNumber": "7", "name": "I am Marla", @@ -357,8 +357,8 @@ "@id": "https://bittersmann.de/startrek/people#NicholasMeyer", "name": "Nicholas Meyer" }, - "video": { - "@type": "VideoObject", + "audio": { + "@type": "AudioObject", "embedUrl": "https://www.youtube-nocookie.com/embed/NfW8mZiFUf4" }, "abstract": [ @@ -369,7 +369,7 @@ ] }, { - "@type": "CreativeWork", + "@type": "PodcastEpisode", "@id": "https://bittersmann.de/startrek/podcasts/khan#8", "episodeNumber": "8", "name": "Original Sin", @@ -396,8 +396,8 @@ "@id": "https://bittersmann.de/startrek/people#NicholasMeyer", "name": "Nicholas Meyer" }, - "video": { - "@type": "VideoObject", + "audio": { + "@type": "AudioObject", "embedUrl": "https://www.youtube-nocookie.com/embed/Hegx5spD1MU" }, "abstract": [ @@ -408,7 +408,7 @@ ] }, { - "@type": "CreativeWork", + "@type": "PodcastEpisode", "@id": "https://bittersmann.de/startrek/podcasts/khan#9", "episodeNumber": "9", "datePublished": "2025-11-03", diff --git a/audiodrama/khan.php b/audiodrama/khan.php index 1c8a264a..dbbb7a51 100644 --- a/audiodrama/khan.php +++ b/audiodrama/khan.php @@ -130,20 +130,20 @@ - + - + - + From 0f24081da432a31e6409c6758f583b092d132865 Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Tue, 28 Oct 2025 03:03:44 +0100 Subject: [PATCH 21/26] feat(khan): apply styles to podcast/audio elements --- audiodrama/khan.php | 3 ++- style.css | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/audiodrama/khan.php b/audiodrama/khan.php index dbbb7a51..04833399 100644 --- a/audiodrama/khan.php +++ b/audiodrama/khan.php @@ -1,6 +1,7 @@ - +
    diff --git a/style.css b/style.css index a3f48192..37785b63 100644 --- a/style.css +++ b/style.css @@ -237,7 +237,8 @@ td[property="director"], td[property="author"], td:has([property="author"]), td[property="review"], -td:has([property="video"]) { +td:has([property="video"]), +td:has([property="audio"]) { width: 18em; } @@ -302,7 +303,8 @@ ul:has(details) { } } -details:has([property="video"]) { +details:has([property="video"]), +details:has([property="audio"]) { iframe { margin-bottom: 0; } From 675c6bf197dd73812c8b443c51972f0f75f3ea6f Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Tue, 28 Oct 2025 03:05:39 +0100 Subject: [PATCH 22/26] chore: update stylesheet version --- movies/index.php | 2 +- series/index.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/movies/index.php b/movies/index.php index 53307eae..65f3471e 100644 --- a/movies/index.php +++ b/movies/index.php @@ -8,7 +8,7 @@ const STARFLEET_LOGO = '../starfleet.svg'; const FAVICON = STARFLEET_LOGO; const APPLE_TOUCH_ICON = '../apple-touch-icon.png'; - const STYLESHEET = '../style.css?date=2025-08-14T18:04Z'; + const STYLESHEET = '../style.css?date=2025-10-28T01:55Z'; const SCRIPT = '../script.js'; $json = file_get_contents('movies.jsonld'); diff --git a/series/index.php b/series/index.php index 15843d39..f2498bb7 100644 --- a/series/index.php +++ b/series/index.php @@ -9,7 +9,7 @@ const STARFLEET_LOGO = '../starfleet.svg'; const FAVICON = STARFLEET_LOGO; const APPLE_TOUCH_ICON = '../apple-touch-icon.png'; - const STYLESHEET = '../style.css?date=2025-08-14T18:04Z'; + const STYLESHEET = '../style.css?date=2025-10-28T01:55Z'; const SCRIPT = '../script.js'; $files = scandir('.'); From 88b261ec4d87ad7d41850c2f1060c2a2d1dc2f2d Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Mon, 3 Nov 2025 17:53:12 +0100 Subject: [PATCH 23/26] feat(khan): update data --- audiodrama/khan.jsonld | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/audiodrama/khan.jsonld b/audiodrama/khan.jsonld index 099f337f..4cd32273 100644 --- a/audiodrama/khan.jsonld +++ b/audiodrama/khan.jsonld @@ -39,6 +39,7 @@ "url": "https://de.wikipedia.org/wiki/Star_Trek:_Khan" } ], + "numberOfEpisodes": 9, "episode": [ { "@type": "PodcastEpisode", @@ -411,6 +412,7 @@ "@type": "PodcastEpisode", "@id": "https://bittersmann.de/startrek/podcasts/khan#9", "episodeNumber": "9", + "name": "Eternity’s Face", "datePublished": "2025-11-03", "director": { "@type": "Person", @@ -433,7 +435,17 @@ "@type": "Person", "@id": "https://bittersmann.de/startrek/people#NicholasMeyer", "name": "Nicholas Meyer" - } + }, + "audio": { + "@type": "AudioObject", + "embedUrl": "https://www.youtube-nocookie.com/embed/pWJFzQzJxgs" + }, + "abstract": [ + { + "@language": "en", + "@value": " Dissent among Khan’s followers threatens Venture’s launch. Khan faces one last threat to his rule, and a final decision that seals his fate." + } + ] } ] } From 406090cf1ef783d4df6189dff01a93ed6394a28b Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Thu, 13 Nov 2025 08:11:26 +0100 Subject: [PATCH 24/26] feat(khan): add review --- audiodrama/khan.jsonld | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/audiodrama/khan.jsonld b/audiodrama/khan.jsonld index 4cd32273..b16ddf54 100644 --- a/audiodrama/khan.jsonld +++ b/audiodrama/khan.jsonld @@ -40,6 +40,20 @@ } ], "numberOfEpisodes": 9, + "review": { + "@type": "Review", + "inLanguage": "en", + "creator": { + "@type": "Person", + "@id": "https://bittersmann.de/startrek/people#JessieGender", + "name": "Jessie Gender" + }, + "datePublished": "2025-11-12", + "video": { + "@type": "VideoObject", + "embedUrl": "https://www.youtube-nocookie.com/embed/lmLBhPqEUYE" + } + }, "episode": [ { "@type": "PodcastEpisode", From 43a7cb7eb41096c283624b9e5e2c95b82e56b5d4 Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Wed, 11 Mar 2026 21:51:11 +0100 Subject: [PATCH 25/26] feat(khan): add German plot descriptions --- audiodrama/khan.jsonld | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/audiodrama/khan.jsonld b/audiodrama/khan.jsonld index b16ddf54..df3f70bf 100644 --- a/audiodrama/khan.jsonld +++ b/audiodrama/khan.jsonld @@ -380,6 +380,10 @@ { "@language": "en", "@value": "Forging a tenuous alliance, Khan’s followers and the Elboreans work toward possible mutual survival. As Khan weighs hard choices affecting both peoples, tragedy strikes." + }, + { + "@language": "de", + "@value": "In einem fragilen Bündnis arbeiten Khans Anhänger und die Elboräer auf ein mögliches gemeinsames Überleben hin. Während Khan schwere Entscheidungen abwägt, die beide Völker betreffen, schlägt das Schicksal tragisch zu." } ] }, @@ -419,6 +423,10 @@ { "@language": "en", "@value": "Five years after disaster sweeps the planet, Khan’s people and the Elboreans prepare their joint, single venture toward salvation. Khan learns the truth behind their predicament." + }, + { + "@language": "de", + "@value": "Fünf Jahre nachdem eine Katastrophe den Planeten verwüstet hat, bereiten Khans Volk und die Elboräer ihr gemeinsames, einziges Unterfangen zur Rettung vor. Khan erfährt die Wahrheit hinter ihrer misslichen Lage." } ] }, @@ -458,6 +466,10 @@ { "@language": "en", "@value": " Dissent among Khan’s followers threatens Venture’s launch. Khan faces one last threat to his rule, and a final decision that seals his fate." + }, + { + "@language": "de", + "@value": "Zwist unter Khans Anhängern bedroht den Start der Venture. Khan sieht sich einer letzten Bedrohung seiner Herrschaft gegenüber – und einer finalen Entscheidung, die sein Schicksal besiegelt." } ] } From 888b895368e61c6f513e0137b09aeb0b9c1c467f Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Wed, 11 Mar 2026 21:55:06 +0100 Subject: [PATCH 26/26] chore(khan): trim plot description --- audiodrama/khan.jsonld | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/audiodrama/khan.jsonld b/audiodrama/khan.jsonld index df3f70bf..fc830b3a 100644 --- a/audiodrama/khan.jsonld +++ b/audiodrama/khan.jsonld @@ -465,7 +465,7 @@ "abstract": [ { "@language": "en", - "@value": " Dissent among Khan’s followers threatens Venture’s launch. Khan faces one last threat to his rule, and a final decision that seals his fate." + "@value": "Dissent among Khan’s followers threatens Venture’s launch. Khan faces one last threat to his rule, and a final decision that seals his fate." }, { "@language": "de",
    From 6fd5d4758db5fb25575419f573c2980da1f10059 Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Tue, 28 Oct 2025 02:16:37 +0100 Subject: [PATCH 16/26] feat(khan): render plot description --- audiodrama/khan.php | 83 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/audiodrama/khan.php b/audiodrama/khan.php index 034fc1dd..e8f0c2c2 100644 --- a/audiodrama/khan.php +++ b/audiodrama/khan.php @@ -1,4 +1,5 @@ +
    + + + + Handlung + + Plot + + + Links + + + +

    + +

    + + +

    + + siehe auch: + + see also: + + + + + + () + + + + $source): ?> + + & + + + + + () + + + $source) ?> + +

    + +
    +
    From 30da29610de6327c593fd9b3d64862a187eccc68 Mon Sep 17 00:00:00 2001 From: Gunnar Bittersmann Date: Tue, 28 Oct 2025 02:22:42 +0100 Subject: [PATCH 18/26] feat(khan): render video --- audiodrama/khan.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/audiodrama/khan.php b/audiodrama/khan.php index e8f0c2c2..1c8a264a 100644 --- a/audiodrama/khan.php +++ b/audiodrama/khan.php @@ -1,6 +1,7 @@ +
    + Video + + +
    +
    -
    - Video +
    + Audio - +