update embeds for the blog and add them to images

This commit is contained in:
zyl 2024-06-21 16:42:55 -07:00
parent 35ac34b69c
commit 750c0c501f
No known key found for this signature in database
3 changed files with 73 additions and 17 deletions

View file

@ -1,7 +1,7 @@
use serde::{Deserialize, Serialize};
use crate::{
resource::{ResourceBuilderConfig, ResourceMetadata, ResourceMethods},
resource::{EmbedMetadata, ResourceBuilderConfig, ResourceMetadata, ResourceMethods},
Site, SiteConfig,
};
@ -37,6 +37,12 @@ pub struct ImageMetadata {
pub file: String,
}
impl ImageMetadata {
fn get_image_url(&self, site_config: &SiteConfig) -> eyre::Result<String> {
Ok(site_config.cdn_url(&self.file)?.to_string())
}
}
/// Template data for a specific image.
#[derive(Debug, Serialize)]
pub struct ImageTemplateData {
@ -55,7 +61,20 @@ impl ResourceMethods<ImageTemplateData> for ResourceMetadata<ImageMetadata> {
site_config: &SiteConfig,
) -> eyre::Result<ImageTemplateData> {
Ok(ImageTemplateData {
src: site_config.cdn_url(&self.inner.file)?.to_string(),
src: self.inner.get_image_url(site_config)?,
})
}
fn get_head_data(&self, site_config: &SiteConfig) -> eyre::Result<String> {
Ok(EmbedMetadata {
title: self.title.clone(),
site_name: &site_config.title,
description: self.inner.desc.clone(),
image: Some(self.inner.get_image_url(site_config)?),
url: None,
theme_color: "rgb(255, 196, 252)".to_string(),
large_image: true,
}
.build())
}
}