From f6a545b00a4046879b7cc25c06c37bb6b6880b43 Mon Sep 17 00:00:00 2001 From: Ruben Beltran del Rio Date: Fri, 8 Mar 2024 14:53:01 +0100 Subject: Use serde and time --- src/generator/html.rs | 10 +++------- src/generator/mod.rs | 6 ++++-- src/generator/rss.rs | 11 +++++++++-- src/generator/static_files.rs | 4 ++-- src/generator/txt.rs | 11 +++++++++-- 5 files changed, 27 insertions(+), 15 deletions(-) (limited to 'src/generator') 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) -> 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) -> 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) -> Result<()>> { +fn available_generators() -> Vec 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) -> 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) -> 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) -> 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(()) } -- cgit