aboutsummaryrefslogtreecommitdiff
path: root/src/file_handler/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/file_handler/mod.rs')
-rw-r--r--src/file_handler/mod.rs13
1 files changed, 8 insertions, 5 deletions
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<File>) {
+ pub fn handle_all(&self, source: &PathBuf, html_destination: &PathBuf, gemini_destination: &PathBuf, files: &Vec<File>) {
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 {