diff --git a/src/MdToHTML.hs b/src/MdToHTML.hs index 2af8e8b..e3dc86a 100644 --- a/src/MdToHTML.hs +++ b/src/MdToHTML.hs @@ -157,12 +157,8 @@ parseBold = parseBoldWith asteriskBold <|> parseBoldWith underscoreBold where parseBoldWith delim = do string delim - inside <- parseNestedThenLineToken delim + inside <- someTill parseLineToken $ string delim return (Bold (Line inside)) - parseNestedThenLineToken delim = do - first <- fallthroughParser [parseItalic, parseLineToken] - rest <- fallthroughParser [singleton <$> parseItalic, singleton <$> string delim >> return mempty, liftA2 (:) parseLineToken $ parseNestedThenLineToken delim] - return (first : rest) -- Parse italic text parseItalic :: Parser MdToken @@ -170,12 +166,8 @@ parseItalic = parseItalicWith '*' <|> parseItalicWith '_' where parseItalicWith delim = do char delim - inside <- parseNestedThenLineToken delim + inside <- someTill parseLineToken (char delim) return (Italic (Line inside)) - parseNestedThenLineToken delim = do - first <- fallthroughParser [parseBold, parseLineToken] - rest <- fallthroughParser [singleton <$> parseBold, singleton <$> char delim >> return mempty, liftA2 (:) parseLineToken $ parseNestedThenLineToken delim] - return (first : rest) -- Parse strikethrough text parseStrikethrough :: Parser MdToken