28 lines
691 B
Rust
28 lines
691 B
Rust
use askama::Template;
|
|
|
|
use crate::{
|
|
pages::post::{PostMetadata, BLOG_POST_PATH},
|
|
post_list::get_post_list,
|
|
post_parser::ParseResult,
|
|
};
|
|
|
|
#[derive(Template)]
|
|
#[template(path = "site_footer.html")]
|
|
pub struct SiteFooter {
|
|
pub latest_posts: Vec<ParseResult<PostMetadata>>,
|
|
}
|
|
|
|
pub async fn render_site_footer() -> SiteFooter {
|
|
let mut post_list = get_post_list::<PostMetadata>(BLOG_POST_PATH)
|
|
.await
|
|
.unwrap_or(vec![]);
|
|
post_list.sort_by_key(|post| post.metadata.date);
|
|
post_list.reverse();
|
|
|
|
let latest_posts = post_list
|
|
.into_iter()
|
|
.take(6)
|
|
.collect::<Vec<ParseResult<PostMetadata>>>();
|
|
SiteFooter { latest_posts }
|
|
}
|