diff --git a/src/extras.rs b/src/extras.rs index a451f31..01afc91 100644 --- a/src/extras.rs +++ b/src/extras.rs @@ -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 { fn index(page: String, builder: &SiteBuilder) -> anyhow::Result { #[derive(Debug, Serialize)] struct SidebarTemplateData<'r> { - resources: Vec<&'r ResourceMetadata>, + // resources: Vec<&'r ResourceMetadata>, + resources: Vec>, } let lmd = builder.blog_builder.loaded_metadata.borrow(); @@ -28,7 +29,16 @@ fn index(page: String, builder: &SiteBuilder) -> anyhow::Result { 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(), }, )?; diff --git a/src/resource.rs b/src/resource.rs index 6cbeb39..f71a099 100644 --- a/src/resource.rs +++ b/src/resource.rs @@ -43,15 +43,15 @@ pub struct ResourceMetadata { pub struct ResourceTemplateData<'r, M, E> { /// The resource's metadata. #[serde(flatten)] - resource: &'r ResourceMetadata, + pub resource: &'r ResourceMetadata, /// 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::::timestamp_formatter")] - timestamp: OffsetDateTime, + pub timestamp: OffsetDateTime, } impl<'r, M, E> ResourceTemplateData<'r, M, E> {