@ -166,32 +166,31 @@ parseHeader = do
-- Parse bold text
parseBold :: ReadP MdToken
parseBold = do
text <-
choice
[ between ( string " __ " ) ( string " __ " ) ( many1 ( lookaheadParse ( /= " __ " ) ) ) ,
between ( string " ** " ) ( string " ** " ) ( many1 ( lookaheadParse ( /= " ** " ) ) )
]
let parsedText = fst $ leftmostLongestParse parseLine text
return ( Bold parsedText )
parseBold = parseBoldWith " ** " <|> parseBoldWith " __ "
where
parseBoldWith delim = do
string delim
inside <- greedyParse1 parseLineToken
string delim
return ( Bold ( Line inside ) )
-- Parse italic text
parseItalic :: ReadP MdToken
parseItalic = do
text <-
choice
[ between ( string " _ " ) ( string " _ " ) ( munch1 ( /= '_' ) ) ,
between ( string " * " ) ( string " * " ) ( munch1 ( /= '*' ) )
]
let parsedText = fst $ leftmostLongestParse parseLine text
return ( Italic parsedText )
parseItalic = parseBoldWith " * " <|> parseBoldWith " _ "
where
parseBoldWith delim = do
string delim
inside <- greedyParse1 parseLineToken
string delim
return ( Italic ( Line inside ) )
-- Parse strikethrough text
parseStrikethrough :: ReadP MdToken
parseStrikethrough = do
text <- between ( string " ~~ " ) ( string " ~~ " ) ( many1 ( lookaheadParse ( /= " ~~ " ) ) )
let parsedText = fst $ leftmostLongestParse parseLine text
return ( Strikethrough parsedText )
string " ~~ "
inside <- many1 parseLineToken
string " ~~ "
return ( Strikethrough ( Line inside ) )
-- Parse a link
parseLink :: ReadP MdToken