Switch to rendering blog post pages instead of blog posts.

This commit is contained in:
Tom Alexander
2023-10-23 20:30:43 -04:00
parent dc233d26b1
commit 2b6f86d4e9
6 changed files with 42 additions and 17 deletions

View File

@@ -4,7 +4,7 @@ use std::path::PathBuf;
use include_dir::include_dir;
use include_dir::Dir;
use crate::blog_post::convert_blog_post_to_render_context;
use crate::blog_post::convert_blog_post_page_to_render_context;
use crate::blog_post::BlogPost;
use crate::error::CustomError;
use crate::render::DusterRenderer;
@@ -56,9 +56,23 @@ impl SiteRenderer {
}
for blog_post in &self.blog_posts {
let render_context = convert_blog_post_to_render_context(blog_post);
let rendered_output = renderer_integration.render(render_context)?;
println!("Rendered: {}", rendered_output);
for blog_post_page in &blog_post.pages {
let output_path = self
.output_directory
.join("posts")
.join(&blog_post.id)
.join(blog_post_page.get_output_path());
println!("Output path: {:?}", output_path);
let render_context =
convert_blog_post_page_to_render_context(blog_post, blog_post_page);
let rendered_output = renderer_integration.render(render_context)?;
println!("Rendered: {}", rendered_output);
let parent_directory = output_path
.parent()
.ok_or("Output file should have a containing directory.")?;
tokio::fs::create_dir_all(parent_directory).await?;
tokio::fs::write(output_path, rendered_output).await?;
}
}
Ok(())