diff options
Diffstat (limited to 'src/html.rs')
-rw-r--r-- | src/html.rs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/html.rs b/src/html.rs index 90bf9d5..9d048a5 100644 --- a/src/html.rs +++ b/src/html.rs @@ -134,8 +134,17 @@ pub fn parse(markdown: &str) -> Result<Element, SiteError> { } }, Event::End(tag) => match &tag { - Tag::Paragraph - | Tag::Heading(_, _, _) + Tag::Paragraph => { + trace!("at end of paragraph, looking for definition list use"); + let e = stack.pop(); + let s = as_plain_text(e.children()); + trace!("paragraph text: {:?}", s); + if s.starts_with(": ") || s.contains("\n: ") { + return Err(SiteError::DefinitionList(s)); + } + stack.append_child(Content::Elt(e)); + } + Tag::Heading(_, _, _) | Tag::List(_) | Tag::Item | Tag::Link(_, _, _) @@ -162,7 +171,7 @@ pub fn parse(markdown: &str) -> Result<Element, SiteError> { } Event::Html(s) => stack.append_child(Content::Html(s.to_string())), Event::FootnoteReference(s) => trace!("footnote ref {:?}", s), - Event::SoftBreak => stack.append_str(" "), + Event::SoftBreak => stack.append_str("\n"), Event::HardBreak => stack.append_element(Element::new(ElementTag::Br)), Event::Rule => stack.append_element(Element::new(ElementTag::Hr)), Event::TaskListMarker(done) => { |