]> git.r.bdr.sh - rbdr/blog/commitdiff
Add generator rust
authorRuben Beltran del Rio <redacted>
Fri, 8 Mar 2024 14:09:40 +0000 (15:09 +0100)
committerRuben Beltran del Rio <redacted>
Fri, 8 Mar 2024 14:09:40 +0000 (15:09 +0100)
src/generator/html.rs
src/generator/mod.rs
src/generator/rss.rs
src/generator/txt.rs

index cff4aea13e5a1bfba845a608782abb0995c6d8b5..b7ddd45770432f76a3f272da1dd6713e9e97e178 100644 (file)
@@ -1,12 +1,17 @@
+use std::fs::write;
 use std::io::Result;
 use std::path::PathBuf;
 use crate::template::{find, parse, TemplateContext};
 
-pub fn generate(_: &PathBuf, template_directory: &PathBuf, _: &PathBuf, context: &TemplateContext) -> Result<()> {
-    match find(template_directory, "index.html") {
+const FILENAME: &str = "index.html";
+
+pub fn generate(_: &PathBuf, template_directory: &PathBuf, target: &PathBuf, context: &TemplateContext) -> Result<()> {
+    match find(template_directory, FILENAME) {
         Some(template) => {
             let parsed_template = parse(&template);
-            println!("TOKEN {}", parsed_template.render(context));
+            let rendered_template = parsed_template.render(context);
+            let location = target.join(FILENAME);
+            write(location, rendered_template)?;
         },
         None => {}
     }
index f0fef7585fd9e7162d6b5f6650d4bbcb577277b8..e967e410f76d255b804459f8eac062ded572e7ee 100644 (file)
@@ -21,6 +21,7 @@ pub fn generate(static_directory: &PathBuf, template_directory: &PathBuf, output
 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
index 5ed9f5c3a05867f4f606eebfb128ac04fc755651..1aac73d059b381bff323f5f469c8389b7be4cbfc 100644 (file)
@@ -1,12 +1,17 @@
+use std::fs::write;
 use std::io::Result;
 use std::path::PathBuf;
 use crate::template::{find, parse, TemplateContext};
 
-pub fn generate(_: &PathBuf, template_directory: &PathBuf, _: &PathBuf, context: &TemplateContext) -> Result<()> {
-    match find(template_directory, "feed.xml") {
+const FILENAME: &str = "feed.xml";
+
+pub fn generate(_: &PathBuf, template_directory: &PathBuf, target: &PathBuf, context: &TemplateContext) -> Result<()> {
+    match find(template_directory, FILENAME) {
         Some(template) => {
             let parsed_template = parse(&template);
-            println!("TOKEN {}", parsed_template.render(context));
+            let rendered_template = parsed_template.render(context);
+            let location = target.join(FILENAME);
+            write(location, rendered_template)?;
         },
         None => {}
     }
index ec96420c98baa3792cd0903c365d7fc3426a02ab..ae260fef598d43da3f9c01cfd75df66e0504c6d6 100644 (file)
@@ -1,12 +1,17 @@
+use std::fs::write;
 use std::io::Result;
 use std::path::PathBuf;
 use crate::template::{find, parse, TemplateContext};
 
-pub fn generate(_: &PathBuf, template_directory: &PathBuf, _: &PathBuf, context: &TemplateContext) -> Result<()> {
-    match find(template_directory, "index.txt") {
+const FILENAME: &str = "index.txt";
+
+pub fn generate(_: &PathBuf, template_directory: &PathBuf, target: &PathBuf, context: &TemplateContext) -> Result<()> {
+    match find(template_directory, FILENAME) {
         Some(template) => {
             let parsed_template = parse(&template);
-            println!("TOKEN {}", parsed_template.render(context));
+            let rendered_template = parsed_template.render(context);
+            let location = target.join(FILENAME);
+            write(location, rendered_template)?;
         },
         None => {}
     }