fix the recent blog posts section on the home page not going to the blog post

This commit is contained in:
zyl 2023-11-14 23:23:11 -08:00
parent a26243ce7d
commit 04ebe92225
No known key found for this signature in database
GPG key ID: 8611B896D1AAFAF2
2 changed files with 17 additions and 7 deletions

View file

@ -1,7 +1,7 @@
use lol_html::{element, RewriteStrSettings};
use serde::Serialize;
use crate::{blog::BlogPostMetadata, builder::SiteBuilder, resource::ResourceMetadata};
use crate::{blog::BlogPostMetadata, builder::SiteBuilder, resource::ResourceTemplateData};
#[derive(Debug)]
pub enum Extra {
@ -20,7 +20,8 @@ pub fn get_extra(extra: &str) -> Option<Extra> {
fn index(page: String, builder: &SiteBuilder) -> anyhow::Result<String> {
#[derive(Debug, Serialize)]
struct SidebarTemplateData<'r> {
resources: Vec<&'r ResourceMetadata<BlogPostMetadata>>,
// resources: Vec<&'r ResourceMetadata<BlogPostMetadata>>,
resources: Vec<ResourceTemplateData<'r, BlogPostMetadata, ()>>,
}
let lmd = builder.blog_builder.loaded_metadata.borrow();
@ -28,7 +29,16 @@ fn index(page: String, builder: &SiteBuilder) -> anyhow::Result<String> {
let sidebar = builder.reg.render(
"extras/index-injection",
&SidebarTemplateData {
resources: lmd.iter().take(3).map(|(_, v)| v).collect(),
resources: lmd
.iter()
.take(3)
.map(|(id, v)| ResourceTemplateData {
resource: v,
id: id.clone(),
extra: (),
timestamp: v.timestamp,
})
.collect(),
},
)?;

View file

@ -43,15 +43,15 @@ pub struct ResourceMetadata<T> {
pub struct ResourceTemplateData<'r, M, E> {
/// The resource's metadata.
#[serde(flatten)]
resource: &'r ResourceMetadata<M>,
pub resource: &'r ResourceMetadata<M>,
/// The resource's ID.
id: String,
pub id: String,
/// Extra data to be passed to the template.
#[serde(flatten)]
extra: E,
pub extra: E,
/// The resource's timestamp. Duplicated to change serialization method.
#[serde(serialize_with = "ResourceTemplateData::<M, E>::timestamp_formatter")]
timestamp: OffsetDateTime,
pub timestamp: OffsetDateTime,
}
impl<'r, M, E> ResourceTemplateData<'r, M, E> {