Skip to content

Commit 3d728fa

Browse files
lefticusclaude
andcommitted
Add C++ Weekly episode templates and landing page link
- Add episode_index.html template with client-side search/filter - Add episode_detail.html template with crosslinks to standard sections - Add episodes promo section to landing page (index.html) - Add episodes-promo styling to custom.css - Update generate_html_site.py to include episode pages in sitemap Episode pages feature: - Searchable/filterable episode list by tag, date, title - Detail pages with YouTube links, summaries, related sections - Bidirectional crosslinks to diff pages, adventure, and current draft 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent ee1409e commit 3d728fa

File tree

5 files changed

+818
-0
lines changed

5 files changed

+818
-0
lines changed

generate_html_site.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1727,6 +1727,24 @@ def generate_seo_files(output_path: Path, stats: dict, base_url: str = "https://
17271727
}
17281728
)
17291729

1730+
# Add episode pages (if generated)
1731+
episodes_dir = output_path / "episodes"
1732+
if episodes_dir.exists():
1733+
# Add episode index
1734+
sitemap_urls.append(
1735+
{"loc": f"{base_url}/episodes/index.html", "priority": "0.8", "changefreq": "weekly"}
1736+
)
1737+
# Add individual episode pages
1738+
for ep_file in sorted(episodes_dir.glob("*.html")):
1739+
if ep_file.name != "index.html":
1740+
sitemap_urls.append(
1741+
{
1742+
"loc": f"{base_url}/episodes/{ep_file.name}",
1743+
"priority": "0.6",
1744+
"changefreq": "monthly",
1745+
}
1746+
)
1747+
17301748
# Build XML
17311749
xml_lines = ['<?xml version="1.0" encoding="UTF-8"?>']
17321750
xml_lines.append('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">')

templates/css/custom.css

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,31 @@ code {
234234
font-size: 0.9rem;
235235
}
236236

237+
.episodes-promo {
238+
margin: 3rem 0;
239+
padding: 2rem;
240+
background: linear-gradient(135deg, #fee2e2 0%, #fef3c7 100%);
241+
border-radius: 12px;
242+
text-align: center;
243+
}
244+
245+
.episodes-promo h2 {
246+
color: #dc2626;
247+
margin-bottom: 1rem;
248+
}
249+
250+
.episodes-promo p {
251+
margin: 0.5rem 0;
252+
}
253+
254+
body.dark-theme .episodes-promo {
255+
background: linear-gradient(135deg, #7f1d1d 0%, #78350f 100%);
256+
}
257+
258+
body.dark-theme .episodes-promo h2 {
259+
color: #fca5a5;
260+
}
261+
237262
.statistics {
238263
margin: 3rem 0;
239264
}

0 commit comments

Comments
 (0)