mirror of
https://github.com/zyllian/zyllian.github.io.git
synced 2025-05-09 18:16:43 -07:00
fix the recent blog posts section on the home page not going to the blog post
This commit is contained in:
parent
a26243ce7d
commit
04ebe92225
2 changed files with 17 additions and 7 deletions
|
@ -1,7 +1,7 @@
|
||||||
use lol_html::{element, RewriteStrSettings};
|
use lol_html::{element, RewriteStrSettings};
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
|
|
||||||
use crate::{blog::BlogPostMetadata, builder::SiteBuilder, resource::ResourceMetadata};
|
use crate::{blog::BlogPostMetadata, builder::SiteBuilder, resource::ResourceTemplateData};
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub enum Extra {
|
pub enum Extra {
|
||||||
|
@ -20,7 +20,8 @@ pub fn get_extra(extra: &str) -> Option<Extra> {
|
||||||
fn index(page: String, builder: &SiteBuilder) -> anyhow::Result<String> {
|
fn index(page: String, builder: &SiteBuilder) -> anyhow::Result<String> {
|
||||||
#[derive(Debug, Serialize)]
|
#[derive(Debug, Serialize)]
|
||||||
struct SidebarTemplateData<'r> {
|
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();
|
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(
|
let sidebar = builder.reg.render(
|
||||||
"extras/index-injection",
|
"extras/index-injection",
|
||||||
&SidebarTemplateData {
|
&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(),
|
||||||
},
|
},
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
|
|
@ -43,15 +43,15 @@ pub struct ResourceMetadata<T> {
|
||||||
pub struct ResourceTemplateData<'r, M, E> {
|
pub struct ResourceTemplateData<'r, M, E> {
|
||||||
/// The resource's metadata.
|
/// The resource's metadata.
|
||||||
#[serde(flatten)]
|
#[serde(flatten)]
|
||||||
resource: &'r ResourceMetadata<M>,
|
pub resource: &'r ResourceMetadata<M>,
|
||||||
/// The resource's ID.
|
/// The resource's ID.
|
||||||
id: String,
|
pub id: String,
|
||||||
/// Extra data to be passed to the template.
|
/// Extra data to be passed to the template.
|
||||||
#[serde(flatten)]
|
#[serde(flatten)]
|
||||||
extra: E,
|
pub extra: E,
|
||||||
/// The resource's timestamp. Duplicated to change serialization method.
|
/// The resource's timestamp. Duplicated to change serialization method.
|
||||||
#[serde(serialize_with = "ResourceTemplateData::<M, E>::timestamp_formatter")]
|
#[serde(serialize_with = "ResourceTemplateData::<M, E>::timestamp_formatter")]
|
||||||
timestamp: OffsetDateTime,
|
pub timestamp: OffsetDateTime,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'r, M, E> ResourceTemplateData<'r, M, E> {
|
impl<'r, M, E> ResourceTemplateData<'r, M, E> {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue