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())},