diff --git a/.gitignore b/.gitignore index ea8c4bf..b1827b9 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ /target +/templates +test_md.md diff --git a/src/main.rs b/src/main.rs index cdc234b..86ce880 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,6 +2,7 @@ use markdown::{to_html_with_options, CompileOptions, Options}; use regex::Regex; use std::collections::HashMap; use std::{env, fs::read_to_string}; +use tera::{Tera, Context}; fn main() { let args: Vec = env::args().collect(); if args.len() < 2 { @@ -10,6 +11,9 @@ fn main() { let mut markdown = read_to_string(args.get(1).unwrap()).expect("File does not exist"); + let mut tera = Tera::new("templates/*").unwrap(); + tera.autoescape_on(vec![]); + let re_key_value = Regex::new(r"(?ms)---(.*)---(?:\n)").unwrap(); let binding_markdown = markdown.clone(); @@ -42,6 +46,7 @@ fn main() { ); } + let html_markdown = to_html_with_options( &markdown, &Options { @@ -55,5 +60,15 @@ fn main() { ) .unwrap(); - println!("{}", html_markdown) + key_value.insert("blog_content", &html_markdown); + + let context = Context::from_serialize(key_value).unwrap(); + + let output = tera.render("blog.html", &context).unwrap(); + + println!("{output}"); } + + + +