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