diff options
| author | Ruben Beltran del Rio <git@r.bdr.sh> | 2024-03-08 14:53:01 +0100 |
|---|---|---|
| committer | Ruben Beltran del Rio <git@r.bdr.sh> | 2024-03-08 14:53:01 +0100 |
| commit | f6a545b00a4046879b7cc25c06c37bb6b6880b43 (patch) | |
| tree | bc7da8066c080ff850d1e423c0e33bd5fb83e095 /src/generator | |
| parent | 2998247083406f914b3647cedd19abf5507bf2c6 (diff) | |
Use serde and time
Diffstat (limited to 'src/generator')
| -rw-r--r-- | src/generator/html.rs | 10 | ||||
| -rw-r--r-- | src/generator/mod.rs | 6 | ||||
| -rw-r--r-- | src/generator/rss.rs | 11 | ||||
| -rw-r--r-- | src/generator/static_files.rs | 4 | ||||
| -rw-r--r-- | src/generator/txt.rs | 11 |
5 files changed, 27 insertions, 15 deletions
diff --git a/src/generator/html.rs b/src/generator/html.rs index 0b258bf..cff4aea 100644 --- a/src/generator/html.rs +++ b/src/generator/html.rs @@ -1,16 +1,12 @@ use std::io::Result; use std::path::PathBuf; -use crate::post::Post; -use crate::template::{find, parse}; +use crate::template::{find, parse, TemplateContext}; -pub fn generate(_: &PathBuf, template_directory: &PathBuf, _: &PathBuf, _: &Vec<Post>) -> Result<()> { - println!("READING TEMP"); +pub fn generate(_: &PathBuf, template_directory: &PathBuf, _: &PathBuf, context: &TemplateContext) -> Result<()> { match find(template_directory, "index.html") { Some(template) => { let parsed_template = parse(&template); - for token in parsed_template.tokens { - println!("TOKEN {}", token); - } + println!("TOKEN {}", parsed_template.render(context)); }, None => {} } diff --git a/src/generator/mod.rs b/src/generator/mod.rs index c4bf1e1..f0fef75 100644 --- a/src/generator/mod.rs +++ b/src/generator/mod.rs @@ -6,17 +6,19 @@ mod txt; use std::io::Result; use std::path::PathBuf; use crate::post::Post; +use crate::template::TemplateContext; 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, posts)?; + generator(static_directory, template_directory, output_directory, &context)?; } Ok(()) } -fn available_generators() -> Vec<fn(&PathBuf, &PathBuf, &PathBuf, &Vec<Post>) -> Result<()>> { +fn available_generators() -> Vec<fn(&PathBuf, &PathBuf, &PathBuf, &TemplateContext) -> Result<()>> { vec![ static_files::generate, html::generate, diff --git a/src/generator/rss.rs b/src/generator/rss.rs index dab7e50..5ed9f5c 100644 --- a/src/generator/rss.rs +++ b/src/generator/rss.rs @@ -1,7 +1,14 @@ use std::io::Result; use std::path::PathBuf; -use crate::post::Post; +use crate::template::{find, parse, TemplateContext}; -pub fn generate(_: &PathBuf, _: &PathBuf, _: &PathBuf, _: &Vec<Post>) -> Result<()> { +pub fn generate(_: &PathBuf, template_directory: &PathBuf, _: &PathBuf, context: &TemplateContext) -> Result<()> { + match find(template_directory, "feed.xml") { + Some(template) => { + let parsed_template = parse(&template); + println!("TOKEN {}", parsed_template.render(context)); + }, + None => {} + } Ok(()) } diff --git a/src/generator/static_files.rs b/src/generator/static_files.rs index 6804800..50f56d8 100644 --- a/src/generator/static_files.rs +++ b/src/generator/static_files.rs @@ -1,7 +1,7 @@ use std::fs::{copy, create_dir_all, read_dir}; use std::io::Result; use std::path::PathBuf; -use crate::post::Post; +use crate::template::TemplateContext; fn recursively_copy(source: &PathBuf, target: &PathBuf) -> Result<()> { let entries = read_dir(source)?; @@ -23,7 +23,7 @@ fn recursively_copy(source: &PathBuf, target: &PathBuf) -> Result<()> { Ok(()) } -pub fn generate(source: &PathBuf, _: &PathBuf, target: &PathBuf, _: &Vec<Post>) -> Result<()> { +pub fn generate(source: &PathBuf, _: &PathBuf, target: &PathBuf, _: &TemplateContext) -> Result<()> { if source.exists() { return recursively_copy(source, target) } diff --git a/src/generator/txt.rs b/src/generator/txt.rs index dab7e50..ec96420 100644 --- a/src/generator/txt.rs +++ b/src/generator/txt.rs @@ -1,7 +1,14 @@ use std::io::Result; use std::path::PathBuf; -use crate::post::Post; +use crate::template::{find, parse, TemplateContext}; -pub fn generate(_: &PathBuf, _: &PathBuf, _: &PathBuf, _: &Vec<Post>) -> Result<()> { +pub fn generate(_: &PathBuf, template_directory: &PathBuf, _: &PathBuf, context: &TemplateContext) -> Result<()> { + match find(template_directory, "index.txt") { + Some(template) => { + let parsed_template = parse(&template); + println!("TOKEN {}", parsed_template.render(context)); + }, + None => {} + } Ok(()) } |