X-Git-Url: https://git.r.bdr.sh/rbdr/page/blobdiff_plain/160a27bd2aa334a881f7c54847ef406925f87633..dd0a540c2002f479ac56a7e0169e86d0f6f14d85:/src/file_handler/mod.rs diff --git a/src/file_handler/mod.rs b/src/file_handler/mod.rs index 4932ef1..9a0133a 100644 --- a/src/file_handler/mod.rs +++ b/src/file_handler/mod.rs @@ -49,17 +49,19 @@ impl FileHandler { Err("No layout found. Please ensure there's a _layout.html file at the root") } - pub fn handle_all(&self, source: &PathBuf, destination: &PathBuf, files: &Vec) { + pub fn handle_all(&self, source: &PathBuf, html_destination: &PathBuf, gemini_destination: &PathBuf, files: &Vec) { for file in files { - self.handle(source, destination, file); + self.handle(source, html_destination, gemini_destination, file); } } - pub fn handle(&self, source: &PathBuf, destination: &PathBuf, file: &File) { + pub fn handle(&self, source: &PathBuf, html_destination: &PathBuf, gemini_destination: &PathBuf, file: &File) { for strategy in self.strategies.iter() { if strategy.can_handle(&file.file_type) { let layout = self.layout.as_ref().unwrap(); - return strategy.handle(source, destination, file, layout); + strategy.handle_html(source, html_destination, file, layout); + strategy.handle_gemini(source, gemini_destination, file); + return; } } } @@ -69,7 +71,8 @@ pub trait FileHandlerStrategy { fn is(&self, path: &PathBuf) -> bool; fn identify(&self) -> FileType; fn can_handle(&self, file_type: &FileType) -> bool; - fn handle(&self, source: &PathBuf, destination: &PathBuf, file: &File, layout: &String); + fn handle_html(&self, source: &PathBuf, destination: &PathBuf, file: &File, layout: &String); + fn handle_gemini(&self, source: &PathBuf, destination: &PathBuf, file: &File); } pub enum FileType {