diff --git a/README.md b/README.md index e72c317..1c00d7e 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,6 @@ Show cases: - separate feeds (used for categories, tagging, etc) `/feed/{tag}` - exclusion of feeds from main feed (drafts or system notes) - HTML anchors for headers -- list random posts at the bottom **Ideas**: - RSS diff --git a/items/2025-10-09_short_features.md b/items/2025-10-09_short_features.md index 78dffec..e521d99 100644 --- a/items/2025-10-09_short_features.md +++ b/items/2025-10-09_short_features.md @@ -7,7 +7,6 @@ - excluding feeds in config file like [/feed/draft/](/feed/draft/) - static files like [/LICENSE](/LICENSE) - html anchors for headers like [#second-header](/your-first-article/#second-header) -- show random posts at the end of the page Everything is **[open-source](https://git.uphillsecurity.com/cf7/picopaper)**! diff --git a/picopaper.py b/picopaper.py index f9184a1..7576a38 100644 --- a/picopaper.py +++ b/picopaper.py @@ -24,14 +24,6 @@ class SSGGGenerator: # Setup Jinja2 self.env = Environment(loader=FileSystemLoader(self.templates_dir)) - # Add custom filter for random sampling - def random_sample(items, count): - import random - items_list = list(items) - return random.sample(items_list, min(count, len(items_list))) - - self.env.filters['random_sample'] = random_sample - # Setup markdown with toc extension for header anchors self.md = markdown.Markdown(extensions=['extra', 'toc']) @@ -126,7 +118,7 @@ class SSGGGenerator: return posts - def generate_index(self, posts, feed_name=None, all_posts=None): + def generate_index(self, posts, feed_name=None): """Generate index.html with all posts (or feed-specific index)""" template = self.env.get_template('index.tmpl') @@ -142,8 +134,7 @@ class SSGGGenerator: blog_title=self.blog_title, blog_description=self.blog_description, navbar_items=self.navbar_items, - posts=posts, - all_posts=all_posts or posts + posts=posts ) output_path.parent.mkdir(parents=True, exist_ok=True) @@ -152,7 +143,7 @@ class SSGGGenerator: print(f"✓ Generated {output_path}") - def generate_feeds_overview(self, feeds, all_posts=None): + def generate_feeds_overview(self, feeds): """Generate /feed/index.html with list of all non-excluded feeds""" template = self.env.get_template('feeds.tmpl') @@ -173,8 +164,7 @@ class SSGGGenerator: blog_title=self.blog_title, blog_description=self.blog_description, navbar_items=self.navbar_items, - feeds=feed_list, - all_posts=all_posts or [] + feeds=feed_list ) output_path.parent.mkdir(parents=True, exist_ok=True) @@ -183,7 +173,7 @@ class SSGGGenerator: print(f"✓ Generated {output_path}") - def generate_post_page(self, post, all_posts=None): + def generate_post_page(self, post): """Generate individual post page for 'long' posts""" template = self.env.get_template('post.tmpl') @@ -192,8 +182,7 @@ class SSGGGenerator: blog_title=self.blog_title, blog_description=self.blog_description, navbar_items=self.navbar_items, - post=post, - all_posts=all_posts or [] + post=post ) # Create directory for the post slug @@ -257,7 +246,7 @@ class SSGGGenerator: and p['feed'] not in self.exclude_feeds] # Generate main index with filtered feed posts - self.generate_index(feed_posts, all_posts=feed_posts) + self.generate_index(feed_posts) # Group posts by feed (include all posts, not just those in main feed) feeds = {} @@ -267,16 +256,16 @@ class SSGGGenerator: # Generate feed-specific pages for feed_name, posts in feeds.items(): - self.generate_index(posts, feed_name, all_posts=feed_posts) + self.generate_index(posts, feed_name) # Generate feeds overview page if feeds: - self.generate_feeds_overview(feeds, all_posts=feed_posts) + 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']: - self.generate_post_page(post, all_posts=feed_posts) + self.generate_post_page(post) # Copy assets self.copy_assets() diff --git a/theme/default/templates/post.tmpl b/theme/default/templates/post.tmpl index 9191071..d1573bd 100644 --- a/theme/default/templates/post.tmpl +++ b/theme/default/templates/post.tmpl @@ -14,8 +14,6 @@ {{ post.content | safe }} - - {% include 'random_posts.tmpl' %} {% include 'footer.tmpl' %} diff --git a/theme/default/templates/random_posts.tmpl b/theme/default/templates/random_posts.tmpl deleted file mode 100644 index f75e2f0..0000000 --- a/theme/default/templates/random_posts.tmpl +++ /dev/null @@ -1,23 +0,0 @@ -{% if all_posts %} -{# Filter out pages and current post, then randomly select 5 #} -{% set available_posts = all_posts | selectattr('type', 'ne', 'page') | list %} -{% if post %} - {% set available_posts = available_posts | rejectattr('slug', 'equalto', post.slug) | list %} -{% endif %} -{% if available_posts %} - {% set random_posts = available_posts | random_sample(5) %} - {% if random_posts %} -