Trying to get nested bold and italic to work
This commit is contained in:
@@ -157,8 +157,12 @@ parseBold = parseBoldWith asteriskBold <|> parseBoldWith underscoreBold
|
|||||||
where
|
where
|
||||||
parseBoldWith delim = do
|
parseBoldWith delim = do
|
||||||
string delim
|
string delim
|
||||||
inside <- someTill parseLineToken $ string delim
|
inside <- parseNestedThenLineToken delim
|
||||||
return (Bold (Line inside))
|
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
|
-- Parse italic text
|
||||||
parseItalic :: Parser MdToken
|
parseItalic :: Parser MdToken
|
||||||
@@ -166,8 +170,12 @@ parseItalic = parseItalicWith '*' <|> parseItalicWith '_'
|
|||||||
where
|
where
|
||||||
parseItalicWith delim = do
|
parseItalicWith delim = do
|
||||||
char delim
|
char delim
|
||||||
inside <- someTill parseLineToken (char delim)
|
inside <- parseNestedThenLineToken delim
|
||||||
return (Italic (Line inside))
|
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
|
-- Parse strikethrough text
|
||||||
parseStrikethrough :: Parser MdToken
|
parseStrikethrough :: Parser MdToken
|
||||||
|
Reference in New Issue
Block a user