2023-10-22 16:10:41 -04:00
|
|
|
use std::path::PathBuf;
|
|
|
|
|
|
|
|
use crate::blog_post::convert_blog_post_to_render_context;
|
|
|
|
use crate::blog_post::BlogPost;
|
|
|
|
use crate::error::CustomError;
|
2023-10-22 16:26:43 -04:00
|
|
|
use crate::render::DusterRenderer;
|
2023-10-22 16:40:58 -04:00
|
|
|
use crate::render::RendererIntegration;
|
2023-10-22 16:10:41 -04:00
|
|
|
|
|
|
|
pub(crate) struct SiteRenderer {
|
|
|
|
pub(crate) output_directory: PathBuf,
|
|
|
|
pub(crate) blog_posts: Vec<BlogPost>,
|
|
|
|
}
|
|
|
|
|
|
|
|
impl SiteRenderer {
|
|
|
|
pub(crate) async fn render_blog_posts(&self) -> Result<(), CustomError> {
|
2023-10-22 16:40:58 -04:00
|
|
|
let mut renderer_integration = DusterRenderer {};
|
2023-10-22 16:10:41 -04:00
|
|
|
for blog_post in &self.blog_posts {
|
|
|
|
let render_context = convert_blog_post_to_render_context(blog_post);
|
2023-10-22 16:40:58 -04:00
|
|
|
renderer_integration.render(render_context)?;
|
2023-10-22 16:10:41 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
Ok(())
|
|
|
|
}
|
|
|
|
}
|