From d074b0131c303c202f6c911c3492351fe0d78215 Mon Sep 17 00:00:00 2001 From: Aadhavan Srinivasan Date: Tue, 10 Jun 2025 14:10:45 -0400 Subject: [PATCH] Parse linebreaks as a backslash before a newline --- src/MdToHTML.hs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/MdToHTML.hs b/src/MdToHTML.hs index 8911fdb..2bcb34e 100644 --- a/src/MdToHTML.hs +++ b/src/MdToHTML.hs @@ -58,7 +58,7 @@ instance Show MdToken where show (Header level token) = "" ++ show token ++ "" show (Para token) = "

" ++ show token ++ "

" show (Line tokens) = concatMap show tokens - show Linebreak = "
" + show Linebreak = "
\n" show SingleNewline = " " show HorizontalRule = "
" show (Blockquote tokens) = "
" ++ concatMap show tokens ++ "
" @@ -224,11 +224,17 @@ parseLink = do -- Parse a linebreak character parseLinebreak :: Parser MdToken -parseLinebreak = do - char ' ' - some (char ' ') - char '\n' - return Linebreak +parseLinebreak = parseLinebreakSpace <|> parseLinebreakBackslash + where + parseLinebreakSpace = do + char ' ' + some (char ' ') + char '\n' + return Linebreak + parseLinebreakBackslash = try $ do + char '\\' + char '\n' + return Linebreak parseTableRow :: Parser [MdToken] parseTableRow = do