diff options
Diffstat (limited to 'src/generator')
| -rw-r--r-- | src/generator/html.rs | 11 | ||||
| -rw-r--r-- | src/generator/mod.rs | 23 | ||||
| -rw-r--r-- | src/generator/rss.rs | 11 | ||||
| -rw-r--r-- | src/generator/static_files.rs | 13 | ||||
| -rw-r--r-- | src/generator/txt.rs | 11 |
5 files changed, 49 insertions, 20 deletions
diff --git a/src/generator/html.rs b/src/generator/html.rs index ab47b7a..7b36944 100644 --- a/src/generator/html.rs +++ b/src/generator/html.rs @@ -1,11 +1,16 @@ +use crate::template::{find, parse, TemplateContext}; use std::fs::write; use std::io::{Error, ErrorKind::Other, Result}; use std::path::PathBuf; -use crate::template::{find, parse, TemplateContext}; const FILENAME: &str = "index.html"; -pub fn generate(_: &PathBuf, template_directory: &PathBuf, target: &PathBuf, context: &TemplateContext) -> Result<()> { +pub fn generate( + _: &PathBuf, + template_directory: &PathBuf, + target: &PathBuf, + context: &TemplateContext, +) -> Result<()> { match find(template_directory, FILENAME) { Some(template) => { let parsed_template = parse(&template) @@ -13,7 +18,7 @@ pub fn generate(_: &PathBuf, template_directory: &PathBuf, target: &PathBuf, con let rendered_template = parsed_template.render(context)?; let location = target.join(FILENAME); write(location, rendered_template)?; - }, + } None => {} } Ok(()) diff --git a/src/generator/mod.rs b/src/generator/mod.rs index e967e41..293ad7d 100644 --- a/src/generator/mod.rs +++ b/src/generator/mod.rs @@ -1,29 +1,38 @@ -mod static_files; mod html; mod rss; +mod static_files; mod txt; -use std::io::Result; -use std::path::PathBuf; use crate::post::Post; use crate::template::TemplateContext; +use std::io::Result; +use std::path::PathBuf; -pub fn generate(static_directory: &PathBuf, template_directory: &PathBuf, output_directory: &PathBuf, posts: &Vec<Post>) -> Result<()> { +pub fn generate( + static_directory: &PathBuf, + template_directory: &PathBuf, + output_directory: &PathBuf, + posts: &Vec<Post>, +) -> Result<()> { let generators = available_generators(); let context = Post::to_template_context(&posts); for generator in generators { - generator(static_directory, template_directory, output_directory, &context)?; + generator( + static_directory, + template_directory, + output_directory, + &context, + )?; } Ok(()) } - fn available_generators() -> Vec<fn(&PathBuf, &PathBuf, &PathBuf, &TemplateContext) -> Result<()>> { vec![ static_files::generate, // These three are actually the same. Can generalize, don't know how in rust yet. html::generate, rss::generate, - txt::generate + txt::generate, ] } diff --git a/src/generator/rss.rs b/src/generator/rss.rs index 6a13bb8..9705f8e 100644 --- a/src/generator/rss.rs +++ b/src/generator/rss.rs @@ -1,11 +1,16 @@ +use crate::template::{find, parse, TemplateContext}; use std::fs::write; use std::io::{Error, ErrorKind::Other, Result}; use std::path::PathBuf; -use crate::template::{find, parse, TemplateContext}; const FILENAME: &str = "feed.xml"; -pub fn generate(_: &PathBuf, template_directory: &PathBuf, target: &PathBuf, context: &TemplateContext) -> Result<()> { +pub fn generate( + _: &PathBuf, + template_directory: &PathBuf, + target: &PathBuf, + context: &TemplateContext, +) -> Result<()> { match find(template_directory, FILENAME) { Some(template) => { let parsed_template = parse(&template) @@ -13,7 +18,7 @@ pub fn generate(_: &PathBuf, template_directory: &PathBuf, target: &PathBuf, con let rendered_template = parsed_template.render(context)?; let location = target.join(FILENAME); write(location, rendered_template)?; - }, + } None => {} } Ok(()) diff --git a/src/generator/static_files.rs b/src/generator/static_files.rs index 401eacf..8c55de3 100644 --- a/src/generator/static_files.rs +++ b/src/generator/static_files.rs @@ -1,11 +1,16 @@ -use std::io::Result; -use std::path::PathBuf; use crate::template::TemplateContext; use crate::utils::recursively_copy; +use std::io::Result; +use std::path::PathBuf; -pub fn generate(source: &PathBuf, _: &PathBuf, target: &PathBuf, _: &TemplateContext) -> Result<()> { +pub fn generate( + source: &PathBuf, + _: &PathBuf, + target: &PathBuf, + _: &TemplateContext, +) -> Result<()> { if source.exists() { - return recursively_copy(source, target) + return recursively_copy(source, target); } Ok(()) } diff --git a/src/generator/txt.rs b/src/generator/txt.rs index f505480..e146c15 100644 --- a/src/generator/txt.rs +++ b/src/generator/txt.rs @@ -1,11 +1,16 @@ +use crate::template::{find, parse, TemplateContext}; use std::fs::write; use std::io::{Error, ErrorKind::Other, Result}; use std::path::PathBuf; -use crate::template::{find, parse, TemplateContext}; const FILENAME: &str = "index.txt"; -pub fn generate(_: &PathBuf, template_directory: &PathBuf, target: &PathBuf, context: &TemplateContext) -> Result<()> { +pub fn generate( + _: &PathBuf, + template_directory: &PathBuf, + target: &PathBuf, + context: &TemplateContext, +) -> Result<()> { match find(template_directory, FILENAME) { Some(template) => { let parsed_template = parse(&template) @@ -13,7 +18,7 @@ pub fn generate(_: &PathBuf, template_directory: &PathBuf, target: &PathBuf, con let rendered_template = parsed_template.render(context)?; let location = target.join(FILENAME); write(location, rendered_template)?; - }, + } None => {} } Ok(()) |