Chunking the blog posts for the stream.
This commit is contained in:
@@ -100,8 +100,30 @@ impl SiteRenderer {
|
||||
//
|
||||
// Steps: pass each RenderBlogStream to dust as the context to render index.html and any additional stream pages.
|
||||
|
||||
for blog_post in &self.blog_posts {
|
||||
println!("{:?}", blog_post.get_date()?);
|
||||
// Sort blog posts by date, newest first.
|
||||
let sorted_blog_posts = {
|
||||
let mut sorted_blog_posts: Vec<_> = self.blog_posts.iter().collect();
|
||||
sorted_blog_posts
|
||||
.sort_by_key(|blog_post| (blog_post.get_date(), blog_post.id.as_str()));
|
||||
sorted_blog_posts.reverse();
|
||||
sorted_blog_posts
|
||||
};
|
||||
|
||||
for blog_post in &sorted_blog_posts {
|
||||
if blog_post.get_date().is_none() {
|
||||
return Err(format!("Blog post {} does not have a date.", blog_post.id).into());
|
||||
}
|
||||
}
|
||||
|
||||
// Group blog posts based on # of posts per page.
|
||||
let stream_chunks: Vec<_> = sorted_blog_posts
|
||||
.chunks(config.get_stream_entries_per_page())
|
||||
.collect();
|
||||
|
||||
// For each group, create a RenderBlogStream.
|
||||
let num_stream_pages = stream_chunks.len();
|
||||
for chunk in stream_chunks {
|
||||
// foo
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user