From 0f04342867315a711b244cdaa820e79d8ac1d707 Mon Sep 17 00:00:00 2001 From: Aadhavan Srinivasan Date: Tue, 10 Jun 2025 09:09:31 -0400 Subject: [PATCH] More trying and backtracking; parse and discard extraneous spaces at beginning of list --- src/MdToHTML.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/MdToHTML.hs b/src/MdToHTML.hs index c2286ee..9e54d17 100644 --- a/src/MdToHTML.hs +++ b/src/MdToHTML.hs @@ -408,12 +408,12 @@ parseListParaItemCommon = do -- Parse an unordered list item, which can be a line item or another list. parseUListItem :: Parser MdToken -parseUListItem = try parseUListParaItem <|> parseUListLineItem +parseUListItem = space *> (try parseUListParaItem <|> parseUListLineItem) -- Parse an unordered list. parseUnorderedList :: Parser MdToken parseUnorderedList = do - lineItems <- some parseUListItem + lineItems <- some $ try parseUListItem void (char '\n') <|> eof -- A list must end in an extra newline or eof return $ UnordList lineItems @@ -425,6 +425,7 @@ parseOListItem = try parseOListParaItem <|> parseOListLineItem -- Parses the first element of an ordered list, which must start with '1.' parseFirstOListItem :: Parser MdToken parseFirstOListItem = do + space remaining <- getInput when (take 2 (T.unpack remaining) /= "1.") empty parseOListLineItem