From 5b0d42fd2d8c841007999436e3a0262c1bb6e92c Mon Sep 17 00:00:00 2001 From: Rockingcool Date: Tue, 20 May 2025 12:23:13 -0500 Subject: [PATCH] Use the in-order parsing approach instead of the post-order one. --- src/MdToHTML.hs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/MdToHTML.hs b/src/MdToHTML.hs index f7465e7..4179423 100644 --- a/src/MdToHTML.hs +++ b/src/MdToHTML.hs @@ -335,10 +335,15 @@ parseUListLineItem = do firstChar <- choice (map char ['*', '+', '-']) char ' ' -- At least one space between list indicator and list text. skipSpaces - restOfLine <- manyTill get (void (char '\n') <++ eof) - let restOfLineParsed = fst $ leftmostLongestParse parseLine restOfLine + restOfLine <- many1 parseListLineToken + void (char '\n') <++ eof nestedList <- parseUListNested <++ return (Unit "") - return $ Line [restOfLineParsed, nestedList] + return $ Line [Line restOfLine, nestedList] + +-- restOfLine <- manyTill get (void (char '\n') <++ eof) +-- let restOfLineParsed = fst $ leftmostLongestParse parseLine restOfLine +-- nestedList <- parseUListNested <++ return (Unit "") +-- return $ Line [restOfLineParsed, nestedList] -- Parse an unordered list paragraph item. -- This is defined as a line item, followed by an empty line, followed by one or more