diff --git a/src/lib.rs b/src/lib.rs index 1fb9128..1360b2c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -373,7 +373,7 @@ pub struct PageRenderer { fn parse_markdown (content: &str, metadata: &mut Table) -> String { let mut metadata_str = String::new(); let mut in_metadata = false; - let parser = pulldown_cmark::Parser::new_ext(content, pulldown_cmark::Options::ENABLE_YAML_STYLE_METADATA_BLOCKS).map(|event| { + let parser = pulldown_cmark::Parser::new_ext(content, pulldown_cmark::Options::ENABLE_YAML_STYLE_METADATA_BLOCKS).filter(|event| { match &event { Event::Start(tag) => { if let Tag::MetadataBlock(_) = tag { @@ -385,24 +385,33 @@ fn parse_markdown (content: &str, metadata: &mut Table) -> String { metadata_str.push_str(text); } } + Event::Html(html) => { + if html.starts_with("") { + in_metadata = false; + return false; + } else if in_metadata { + metadata_str.push_str(html); + } + } Event::End(tag) => { - if let TagEnd::MetadataBlock(_) = tag { - if in_metadata { - if let Ok(parsed_metadata) = toml::de::from_str::