diff --git a/src/renderer/html_handlebars/hbs_renderer.rs b/src/renderer/html_handlebars/hbs_renderer.rs
index bfa9fda3..09bd0376 100644
--- a/src/renderer/html_handlebars/hbs_renderer.rs
+++ b/src/renderer/html_handlebars/hbs_renderer.rs
@@ -19,9 +19,9 @@ use once_cell::sync::Lazy;
use regex::{Captures, Regex};
use serde_json::json;
-use gray_matter::Matter;
use gray_matter::engine::YAML;
-use serde::Deserialize;
+use gray_matter::Matter;
+use serde::Deserialize;
fn extract_frontmatter(content: &str) -> Option<&str> {
let start = content.find("---")? + 3; // Find the end of the first `---` + 3 to move past it
@@ -29,7 +29,7 @@ fn extract_frontmatter(content: &str) -> Option<&str> {
Some(&content[start..end].trim())
}
-#[derive(Deserialize, Debug)]
+#[derive(Deserialize, Debug)]
struct FrontMatter {
title: String,
description: String,
@@ -75,29 +75,40 @@ impl HtmlHandlebars {
let matter = Matter::::new();
let parsed = matter.parse(&ch.content);
let (content, new_content) = if let Some(data) = parsed.data {
-
debug!("Parsed frontmatter: {:?}", &data);
let yaml_str = extract_frontmatter(&ch.content).unwrap_or_default();
- let front_matter_result: Result = serde_yaml::from_str(yaml_str);
+ let front_matter_result: Result =
+ serde_yaml::from_str(yaml_str);
// let front_matter_result: Result = serde_yaml::from_str(&ch.content);
match front_matter_result {
Ok(front_matter) => {
- ctx.data.insert("is_frontmatter".to_owned(), json!("true"));
- ctx.data.insert("og_title".to_owned(), json!(front_matter.title));
- ctx.data.insert("og_description".to_owned(), json!(front_matter.description));
- ctx.data.insert("og_image_url".to_owned(), json!(front_matter.featured_image_url));
- },
+ ctx.data.insert("is_frontmatter".to_owned(), json!("true"));
+ ctx.data
+ .insert("og_title".to_owned(), json!(front_matter.title));
+ ctx.data
+ .insert("og_description".to_owned(), json!(front_matter.description));
+ ctx.data.insert(
+ "og_image_url".to_owned(),
+ json!(front_matter.featured_image_url),
+ );
+ }
Err(e) => {
eprintln!("Frontmatter: Deserialization error: {:?}", e);
- },
+ }
}
// Prepare new content without frontmatter for rendering
let new_content = parsed.content.trim_start();
- (utils::render_markdown(&new_content, ctx.html_config.curly_quotes), Some(new_content))
+ (
+ utils::render_markdown(&new_content, ctx.html_config.curly_quotes),
+ Some(new_content),
+ )
} else {
// No frontmatter, use original content
- (utils::render_markdown(&ch.content, ctx.html_config.curly_quotes), None)
+ (
+ utils::render_markdown(&ch.content, ctx.html_config.curly_quotes),
+ None,
+ )
};
let fixed_content =
@@ -179,8 +190,6 @@ impl HtmlHandlebars {
utils::fs::write_file(&ctx.destination, "index.html", rendered_index.as_bytes())?;
}
-
-
Ok(())
}