summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.rs45
1 files changed, 35 insertions, 10 deletions
diff --git a/src/main.rs b/src/main.rs
index f125e7b..d5f6fea 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -13,21 +13,46 @@ struct File {
content: String,
}
+fn meta_data_extractor(content: &str) -> (String, String, String) {
+ let lines = content.lines();
+ let mut date: String = "".to_string();
+ let mut title: String = "".to_string();
+ let mut desc: String = "".to_string();
+
+ for line in lines {
+ let meta_data = line.split('=').collect::<Vec<&str>>();
+ match meta_data[0] {
+ "date" => date = meta_data[1].to_string(),
+ "title" => title = meta_data[1].to_string(),
+ "description" => desc = meta_data[1].to_string(),
+ &_ => println!(""),
+ }
+ }
+
+ return (date, title, desc);
+}
+
fn markdown_to_html(path: String, content: String) -> File {
let mut end: usize = 0;
if &content[0..3] != "+++" {
println!("It doesnt pass");
}
- let end = content[3..].find("+++").unwrap();
+ let end_wrapped = content[3..].find("+++");
+
+ if Some(end_wrapped) == Some(None) {
+ println!("It doesnt pass");
+ }
- // if Some(end) == Some(None) {
- // println!("It doesnt pass");
- // }
+ let end = end_wrapped.unwrap();
+ let meta_data = &content[3..end + 2];
- let meta_data = &content[3..end];
+ let date: String;
+ let title: String;
+ let description: String;
- println!("{meta_data}\n\n");
+ meta_data_extractor(meta_data);
+ // println!("{meta_data}\n\n");
let html = markdown::to_html(&content[end + 7..]);
let file_name = std::path::Path::new(&path).file_name().unwrap();
@@ -52,8 +77,8 @@ fn main() {
let contents_read = fs::read_to_string(path).unwrap();
let f: File = markdown_to_html(path.to_string(), contents_read);
- println!(
- "file_name: {}\npath:{}\ncontent:\n{}",
- f.file_name, f.parent_directory, f.content
- );
+ // println!(
+ // "file_name: {}\npath:{}\ncontent:\n{}",
+ // f.file_name, f.parent_directory, f.content
+ // );
}