Skip to content

Commit 88f956d

Browse files
authored
Merge pull request #83 from DataTalksClub/podcast-improvements-seo
[Ready] SEO: Updating podcast URLs and adding topics for all podcasts
2 parents 56b789c + ad25842 commit 88f956d

File tree

391 files changed

+26092
-25299
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

391 files changed

+26092
-25299
lines changed

Gemfile.lock

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ GEM
3636
logger
3737
faraday-net_http (3.4.1)
3838
net-http (>= 0.5.0)
39+
faraday-retry (2.3.2)
40+
faraday (~> 2.0)
3941
ffi (1.17.2)
4042
forwardable-extended (2.6.0)
4143
gemoji (4.1.0)
@@ -272,8 +274,8 @@ PLATFORMS
272274
x64-mingw32
273275

274276
DEPENDENCIES
277+
faraday-retry
275278
github-pages
276-
jekyll
277279
jekyll-feed (~> 0.12)
278280
jekyll-theme-cayman
279281
tzinfo (~> 1.2)

_config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ exclude:
1919
- Pipfile.lock
2020
- Makefile
2121
- .gitignore
22+
- sh-thd-*
2223

2324

2425
collections:

_layouts/podcast.html

Lines changed: 83 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -338,10 +338,6 @@ <h2 class="platforms-heading">Listen to or watch on your favorite platform</h2>
338338
<div>Spotify</div>
339339
</a>
340340
{% endif %}
341-
<a href="https://anchor.fm/datatalksclub" target="_blank" rel="noopener noreferrer" class="chip-platform">
342-
<img src="/images/podcast/badges/anchor-icon.jpg" alt="Anchor icon" class="chip-platform-icon"/>
343-
<div>Anchor</div>
344-
</a>
345341
</div>
346342
</header>
347343

@@ -368,7 +364,60 @@ <h2 id="shownotes-heading" class="sr-only">Show Notes</h2>
368364
<div class="content-main mb-5">
369365
{{ content }}
370366
</div>
367+
</section>
371368

369+
<section class="podcast-tab-content" id="timestamps-tab" aria-labelledby="timestamps-heading">
370+
<h2 id="timestamps-heading" class="sr-only">Timestamps</h2>
371+
{% if page.transcript %}
372+
<p class="timestamps-prompt">Click any timestamp to jump to that moment in the video</p>
373+
<div class="timestamps-list">
374+
<ul>
375+
{% assign found_header = false %}
376+
{% assign header_text = "" %}
377+
{% for line in page.transcript %}
378+
{% if line.header %}
379+
{% assign found_header = true %}
380+
{% assign header_text = line.header %}
381+
{% elsif found_header and line.sec %}
382+
<li>
383+
<a href="#" class="timestamp-link" data-time="{{ line.sec }}">
384+
<span class="timestamp-time">{{ line.time }}</span>
385+
<span class="timestamp-text">{{ header_text }}</span>
386+
</a>
387+
</li>
388+
{% assign found_header = false %}
389+
{% endif %}
390+
{% endfor %}
391+
</ul>
392+
</div>
393+
{% else %}
394+
<p>Timestamps coming soon...</p>
395+
{% endif %}
396+
</section>
397+
398+
{% if page.transcript %}
399+
<section class="podcast-tab-content" id="transcript-tab" aria-labelledby="transcript-heading">
400+
<h2 id="transcript-heading" class="sr-only">Transcript</h2>
401+
<div class="content-main mb-5">
402+
<p class="transcript-disclaimer">
403+
The transcripts are edited for clarity, sometimes with AI.
404+
If you notice any incorrect information,
405+
<a href="https://github.com/DataTalksClub/datatalksclub.github.io/issues/new/choose" target="_blank">let us know</a>.
406+
</p>
407+
408+
{% for line in page.transcript %}
409+
{% if line.header %}
410+
<h3 id="{{ line.header | slugify }}" class="transcript-header">{{ line.header }}</h3>
411+
{% else %}
412+
<p class="transcript-line"><b>{{ line.who }}</b>: {{ line.line }}{% if line.sec %} (<a href="#" class="transcript-timestamp-link" data-time="{{ line.sec }}">{{ line.time }}</a>){% endif %}</p>
413+
{% endif %}
414+
{% endfor %}
415+
</div>
416+
</section>
417+
{% endif %}
418+
419+
<!-- Unified Footer - Appears on all tabs -->
420+
<div class="podcast-unified-footer">
372421
<!-- Guest Bio Cards -->
373422
{% if page.guests %}
374423
<section class="guest-bio-section mb-4" aria-labelledby="guests-heading">
@@ -430,38 +479,38 @@ <h3 class="guest-bio-name">{{ guest.title }}</h3>
430479
</nav>
431480
{% endif %}
432481

433-
<!-- Newsletter Section -->
434-
<div class="main-cta">
435-
<p class="newsletter-main-text">
436-
Join 130,000+ data professionals and get weekly updates on new podcast episodes, upcoming events, free courses, and more.
437-
</p>
438-
<p class="newsletter-sub-text">
439-
You'll also receive an invite to our Slack community for discussions, networking, and peer support.
440-
</p>
482+
<!-- Newsletter Section -->
483+
<div class="main-cta">
484+
<p class="newsletter-main-text">
485+
Join 130,000+ data professionals and get weekly updates on new podcast episodes, upcoming events, free courses, and more.
486+
</p>
487+
<p class="newsletter-sub-text">
488+
You'll also receive an invite to our Slack community for discussions, networking, and peer support.
489+
</p>
441490

442-
<form method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form"
443-
action="https://club.us19.list-manage.com/subscribe/post?u=0d7822ab98152f5afc118c176&amp;id=97178021aa"
444-
class="validate" target="_blank" novalidate>
445-
<div class="form-row align-items-center justify-content-center">
446-
<div class="col-auto">
447-
<label class="sr-only" for="mce-EMAIL">Email</label>
448-
<input type="email" value="" name="EMAIL" class="form-control" id="mce-EMAIL" placeholder="Email address" required>
449-
</div>
450-
<!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
451-
<div style="position: absolute; left: -5000px;" aria-hidden="true">
452-
<input type="text" name="b_0d7822ab98152f5afc118c176_e52ea9dcd3" tabindex="-1" value="">
453-
</div>
454-
<div class="col-auto">
455-
<button type="submit" name="subscribe" class="btn btn-success">
456-
<i class="far fa-paper-plane"></i> &nbsp; Join
457-
</button>
491+
<form method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form"
492+
action="https://club.us19.list-manage.com/subscribe/post?u=0d7822ab98152f5afc118c176&amp;id=97178021aa"
493+
class="validate" target="_blank" novalidate>
494+
<div class="form-row align-items-center justify-content-center">
495+
<div class="col-auto">
496+
<label class="sr-only" for="mce-EMAIL">Email</label>
497+
<input type="email" value="" name="EMAIL" class="form-control" id="mce-EMAIL" placeholder="Email address" required>
498+
</div>
499+
<!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
500+
<div style="position: absolute; left: -5000px;" aria-hidden="true">
501+
<input type="text" name="b_0d7822ab98152f5afc118c176_e52ea9dcd3" tabindex="-1" value="">
502+
</div>
503+
<div class="col-auto">
504+
<button type="submit" name="subscribe" class="btn btn-success">
505+
<i class="far fa-paper-plane"></i> &nbsp; Join
506+
</button>
507+
</div>
458508
</div>
509+
</form>
510+
<div class="pt-2 small">
511+
You'll be subscribed to our newsletter and receive a Slack invite in 3 minutes.
459512
</div>
460-
</form>
461-
<div class="pt-2 small">
462-
You'll be subscribed to our newsletter and receive a Slack invite in 3 minutes.
463513
</div>
464-
</div>
465514

466515
<!-- Related Episodes Section -->
467516
<section class="related-episodes-section" aria-labelledby="related-episodes-heading">
@@ -497,57 +546,7 @@ <h3 class="related-episode-title">{{ episode.title }}</h3>
497546
{% endfor %}
498547
</div>
499548
</section>
500-
</section>
501-
502-
<section class="podcast-tab-content" id="timestamps-tab" aria-labelledby="timestamps-heading">
503-
<h2 id="timestamps-heading" class="sr-only">Timestamps</h2>
504-
{% if page.transcript %}
505-
<p class="timestamps-prompt">Click any timestamp to jump to that moment in the video</p>
506-
<div class="timestamps-list">
507-
<ul>
508-
{% assign found_header = false %}
509-
{% assign header_text = "" %}
510-
{% for line in page.transcript %}
511-
{% if line.header %}
512-
{% assign found_header = true %}
513-
{% assign header_text = line.header %}
514-
{% elsif found_header and line.sec %}
515-
<li>
516-
<a href="#" class="timestamp-link" data-time="{{ line.sec }}">
517-
<span class="timestamp-time">{{ line.time }}</span>
518-
<span class="timestamp-text">{{ header_text }}</span>
519-
</a>
520-
</li>
521-
{% assign found_header = false %}
522-
{% endif %}
523-
{% endfor %}
524-
</ul>
525-
</div>
526-
{% else %}
527-
<p>Timestamps coming soon...</p>
528-
{% endif %}
529-
</section>
530-
531-
{% if page.transcript %}
532-
<section class="podcast-tab-content" id="transcript-tab" aria-labelledby="transcript-heading">
533-
<h2 id="transcript-heading" class="sr-only">Transcript</h2>
534-
<div class="content-main mb-5">
535-
<p class="transcript-disclaimer">
536-
The transcripts are edited for clarity, sometimes with AI.
537-
If you notice any incorrect information,
538-
<a href="https://github.com/DataTalksClub/datatalksclub.github.io/issues/new/choose" target="_blank">let us know</a>.
539-
</p>
540-
541-
{% for line in page.transcript %}
542-
{% if line.header %}
543-
<h3 id="{{ line.header | slugify }}" class="transcript-header">{{ line.header }}</h3>
544-
{% else %}
545-
<p class="transcript-line"><b>{{ line.who }}</b>: {{ line.line }}{% if line.sec %} (<a href="{{ page.links.youtube }}&t={{ line.sec }}s" target="youtube">{{ line.time }}</a>){% endif %}</p>
546-
{% endif %}
547-
{% endfor %}
548-
</div>
549-
</section>
550-
{% endif %}
549+
</div>
551550

552551
</article>
553552
</div>
@@ -574,7 +573,7 @@ <h3 id="{{ line.header | slugify }}" class="transcript-header">{{ line.header }}
574573
});
575574

576575
// Timestamp click functionality
577-
const timestampLinks = document.querySelectorAll('.timestamp-link');
576+
const timestampLinks = document.querySelectorAll('.timestamp-link, .transcript-timestamp-link');
578577
timestampLinks.forEach(link => {
579578
link.addEventListener('click', function(e) {
580579
e.preventDefault();

_podcast/_s12e08.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ links:
1212
spotify: https://open.spotify.com/episode/5fB185hGlGYQmdk0kbIsPv?si=YtnsaYNzTc-fl7emZ2IjEA
1313
youtube: https://www.youtube.com/watch?v=FRi0SUtxdMw
1414
season: 12
15-
short: 'The Journey of a Data Generalist: From Bioinformatics to Freelancing'
16-
title: 'The Journey of a Data Generalist: From Bioinformatics to Freelancing'
15+
short: "The Journey of a Data Generalist: From Bioinformatics to Freelancing"
16+
title: "The Journey of a Data Generalist: From Bioinformatics to Freelancing"
1717
transcript:
1818
- line: This week we'll talk about being a data generalist. We'll discuss going from
1919
bioinformatics to freelancing. We have a special guest today, Katya. As a freelancer

0 commit comments

Comments
 (0)