ADD /feed/ overview with counters #5

This commit is contained in:
Caffeine Fueled 2025-10-20 17:03:11 +02:00
parent 581563e9e0
commit af2f800321
Signed by: cf7
GPG key ID: CA295D643074C68C
2 changed files with 54 additions and 0 deletions

View file

@ -143,6 +143,36 @@ class SSGGGenerator:
print(f"✓ Generated {output_path}")
def generate_feeds_overview(self, feeds):
"""Generate /feed/index.html with list of all non-excluded feeds"""
template = self.env.get_template('feeds.tmpl')
# Prepare feed data with counts, excluding feeds in EXCLUDE_FEEDS_FROM_MAIN
feed_list = []
for feed_name, posts in sorted(feeds.items()):
if feed_name not in self.exclude_feeds:
feed_list.append({
'name': feed_name,
'count': len(posts)
})
title = f"Feeds - {self.blog_title}"
output_path = self.output_dir / 'feed' / 'index.html'
html = template.render(
title=title,
blog_title=self.blog_title,
blog_description=self.blog_description,
navbar_items=self.navbar_items,
feeds=feed_list
)
output_path.parent.mkdir(parents=True, exist_ok=True)
with open(output_path, 'w', encoding='utf-8') as f:
f.write(html)
print(f"✓ Generated {output_path}")
def generate_post_page(self, post):
"""Generate individual post page for 'long' posts"""
template = self.env.get_template('post.tmpl')
@ -228,6 +258,10 @@ class SSGGGenerator:
for feed_name, posts in feeds.items():
self.generate_index(posts, feed_name)
# Generate feeds overview page
if feeds:
self.generate_feeds_overview(feeds)
# Generate individual pages for long posts, short posts, and pages
for post in all_posts:
if post['type'] in ['long', 'short', 'page']: