39297d4aa5
- Share buttons on episode and clip cards (Web Share API + clipboard fallback) - NEW badge on latest episode card - Sticky call-in CTA bar (appears after hero scrolls out) - Daily AI Briefing newsletter cross-promote in footer - Bump cache versions to v=5 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
128 lines
5.6 KiB
HTML
128 lines
5.6 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta name="theme-color" content="#1a1209">
|
|
<title id="page-title">Episode — Luke at the Roost</title>
|
|
<meta name="description" id="page-description" content="Full transcript of this episode of Luke at the Roost, the late-night call-in radio show.">
|
|
<link rel="canonical" id="page-canonical" href="https://lukeattheroost.com/episode.html">
|
|
|
|
<!-- OG / Social -->
|
|
<meta property="og:site_name" content="Luke at the Roost">
|
|
<meta property="og:title" id="og-title" content="Episode — Luke at the Roost">
|
|
<meta property="og:description" id="og-description" content="Full transcript of this episode of Luke at the Roost.">
|
|
<meta property="og:image" content="https://cdn.lukeattheroost.com/media/podcasts/LukeAtTheRoost/cover_feed.png?v=3">
|
|
<meta property="og:url" id="og-url" content="https://lukeattheroost.com/episode.html">
|
|
<meta property="og:type" content="article">
|
|
<meta name="twitter:card" content="summary_large_image">
|
|
<meta name="twitter:title" id="tw-title" content="Episode — Luke at the Roost">
|
|
<meta name="twitter:description" id="tw-description" content="Full transcript of this episode of Luke at the Roost.">
|
|
<meta name="twitter:image" content="https://cdn.lukeattheroost.com/media/podcasts/LukeAtTheRoost/cover_feed.png?v=3">
|
|
|
|
<!-- Favicon -->
|
|
<link rel="icon" href="favicon.ico" sizes="48x48">
|
|
<link rel="icon" type="image/svg+xml" href="favicon.svg">
|
|
<link rel="icon" type="image/png" sizes="192x192" href="favicon-192.png">
|
|
<link rel="icon" type="image/png" sizes="48x48" href="favicon-48.png">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32.png">
|
|
<link rel="icon" type="image/png" sizes="16x16" href="favicon-16.png">
|
|
<link rel="apple-touch-icon" href="apple-touch-icon.png">
|
|
|
|
<link rel="alternate" type="application/rss+xml" title="Luke at the Roost RSS Feed" href="https://podcast.macneilmediagroup.com/@LukeAtTheRoost/feed.xml">
|
|
<link rel="stylesheet" href="css/style.css?v=5">
|
|
|
|
<!-- Structured Data (dynamically updated by JS) -->
|
|
<script type="application/ld+json" id="episode-jsonld">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "PodcastEpisode",
|
|
"partOfSeries": {
|
|
"@type": "PodcastSeries",
|
|
"name": "Luke at the Roost",
|
|
"url": "https://lukeattheroost.com"
|
|
},
|
|
"name": "Episode — Luke at the Roost",
|
|
"url": "https://lukeattheroost.com/episode.html",
|
|
"description": "Full transcript of this episode of Luke at the Roost.",
|
|
"inLanguage": "en"
|
|
}
|
|
</script>
|
|
<script defer data-domain="lukeattheroost.com" data-api="/p/event" src="/p/script"></script>
|
|
<script>window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }</script>
|
|
</head>
|
|
<body>
|
|
|
|
<a href="#main-content" class="skip-link">Skip to content</a>
|
|
|
|
<nav class="site-nav">
|
|
<a href="/" class="site-nav-brand">Luke at the Roost</a>
|
|
<div class="site-nav-links">
|
|
<a href="/how-it-works">How It Works</a>
|
|
<a href="/clips">Clips</a>
|
|
<a href="/stats">Stats</a>
|
|
</div>
|
|
</nav>
|
|
|
|
<main id="main-content">
|
|
|
|
<!-- Episode Header -->
|
|
<section class="ep-header" id="ep-header">
|
|
<div class="ep-header-inner">
|
|
<div class="ep-meta" id="ep-meta"></div>
|
|
<h1 class="ep-title" id="ep-title">Loading...</h1>
|
|
<p class="ep-desc" id="ep-desc"></p>
|
|
<div class="ep-actions">
|
|
<button class="ep-play-btn" id="ep-play-btn" style="display:none" aria-label="Play Episode">
|
|
<svg viewBox="0 0 24 24" fill="currentColor"><path d="M8 5v14l11-7z"/></svg>
|
|
<span>Play Episode</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Transcript -->
|
|
<section class="transcript-section" id="transcript-section">
|
|
<h2>Full Transcript</h2>
|
|
<div class="transcript-body" id="transcript-body">
|
|
<div class="episodes-loading">Loading transcript...</div>
|
|
</div>
|
|
</section>
|
|
|
|
</main>
|
|
|
|
<noscript>
|
|
<section class="transcript-section">
|
|
<p>This page requires JavaScript to load the episode transcript. Please enable JavaScript or listen on <a href="https://open.spotify.com/show/0ZrpMigG1fo0CCN7F4YmuF">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/luke-at-the-roost/id1875205848">Apple Podcasts</a>, or <a href="https://www.youtube.com/watch?v=xryGLifMBTY&list=PLGq4uZyNV1yYH_rcitTTPVysPbC6-7pe-">YouTube</a>.</p>
|
|
</section>
|
|
</noscript>
|
|
|
|
<footer class="footer"></footer>
|
|
|
|
<!-- Sticky Audio Player -->
|
|
<div class="sticky-player" id="sticky-player">
|
|
<div class="player-inner">
|
|
<button class="player-play-btn" id="player-play-btn" aria-label="Play/Pause">
|
|
<svg class="icon-play" viewBox="0 0 24 24"><path d="M8 5v14l11-7z"/></svg>
|
|
<svg class="icon-pause" viewBox="0 0 24 24" style="display:none"><path d="M6 19h4V5H6v14zm8-14v14h4V5h-4z"/></svg>
|
|
</button>
|
|
<div class="player-info">
|
|
<div class="player-title" id="player-title">—</div>
|
|
<div class="player-progress-row">
|
|
<div class="player-progress" id="player-progress" role="slider" aria-label="Audio progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" tabindex="0">
|
|
<div class="player-progress-fill" id="player-progress-fill"></div>
|
|
</div>
|
|
<span class="player-time" id="player-time">0:00 / 0:00</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<audio id="audio-element" preload="none"></audio>
|
|
|
|
<script src="js/footer.js"></script>
|
|
<script src="js/player.js"></script>
|
|
<script src="js/episode.js"></script>
|
|
</body>
|
|
</html>
|