From d144f6c8de26c83200ebc1c42bd12ecbd766a460 Mon Sep 17 00:00:00 2001 From: Jonathan Moroney Date: Thu, 15 Sep 2022 16:36:04 -0700 Subject: [PATCH] Don't add a newline if the last thing added was a newline --- src/lib.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 4021b50..342b0bf 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -155,7 +155,7 @@ pub fn parse(tokens: &[Token]) -> String { Token::BlockQuote(_, _) | Token::Newline if quote_level > 0 => {}, Token::CodeBlock(_, _) | Token::Newline | Token::Header(_, _, _) if in_paragraph => { in_paragraph = false; - html.push_str("

") + html.push_str("

\n") }, Token::Plaintext(_) | Token::Italic(_) | Token::Bold(_) | Token::BoldItalic(_) | Token::Strikethrough(_) if !in_paragraph => { for _i in 0..quote_level { @@ -235,7 +235,12 @@ pub fn parse(tokens: &[Token]) -> String { } html.push_str(format!("
  • {}
  • ", sanitize_display_text(t)).as_str()) }, - Token::Newline => {html.push('\n')}, + Token::Newline => { + match html.chars().last() { + Some('\n') => {} + _ => html.push('\n'), + } + }, Token::Tab => {html.push('\t')}, Token::DoubleTab => {html.push_str("\t\t")}, Token::Italic(t) => {html.push_str(format!("{}", sanitize_display_text(t)).as_str())},