diff --git a/src/command/build/render.rs b/src/command/build/render.rs index cc47f27..7a35346 100644 --- a/src/command/build/render.rs +++ b/src/command/build/render.rs @@ -3,6 +3,7 @@ use std::path::PathBuf; use crate::blog_post::convert_blog_post_to_render_context; use crate::blog_post::BlogPost; use crate::error::CustomError; +use crate::render::DusterRenderer; pub(crate) struct SiteRenderer { pub(crate) output_directory: PathBuf, @@ -16,6 +17,8 @@ impl SiteRenderer { println!("{}", serde_json::to_string(&render_context)?); } + let mut renderer_integration = DusterRenderer {}; + Ok(()) } } diff --git a/src/main.rs b/src/main.rs index 124c99b..6e1fb2d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,6 +12,7 @@ mod cli; mod command; mod config; mod error; +mod render; fn main() -> Result { let rt = tokio::runtime::Runtime::new()?; diff --git a/src/render/duster_renderer.rs b/src/render/duster_renderer.rs new file mode 100644 index 0000000..ac1cb2d --- /dev/null +++ b/src/render/duster_renderer.rs @@ -0,0 +1,24 @@ +use super::renderer_integration::RendererIntegration; + +pub(crate) struct DusterRenderer {} + +impl RendererIntegration for DusterRenderer { + fn load_templates(&mut self, dust_templates: I) -> Result<(), crate::error::CustomError> + where + I: Iterator, + P: Into, + { + todo!() + } + + fn render

( + &self, + context: &str, + build_directory: P, + ) -> Result + where + P: AsRef, + { + todo!() + } +} diff --git a/src/render/mod.rs b/src/render/mod.rs new file mode 100644 index 0000000..389e21b --- /dev/null +++ b/src/render/mod.rs @@ -0,0 +1,3 @@ +mod duster_renderer; +mod renderer_integration; +pub(crate) use duster_renderer::DusterRenderer; diff --git a/src/render/renderer_integration.rs b/src/render/renderer_integration.rs new file mode 100644 index 0000000..a854ac0 --- /dev/null +++ b/src/render/renderer_integration.rs @@ -0,0 +1,15 @@ +use std::path::Path; +use std::path::PathBuf; + +use crate::error::CustomError; + +pub trait RendererIntegration { + fn load_templates(&mut self, dust_templates: I) -> Result<(), CustomError> + where + I: Iterator, + P: Into; + + fn render

(&self, context: &str, build_directory: P) -> Result + where + P: AsRef; +}