|
|
|
@ -185,15 +185,16 @@ parseStrikethrough = do
|
|
|
|
|
-- Parse code
|
|
|
|
|
parseCode :: Parser MdToken
|
|
|
|
|
parseCode = do
|
|
|
|
|
char '`'
|
|
|
|
|
inside <- manyTill (satisfy (/= '\n')) (char '`')
|
|
|
|
|
opening <- some $ char '`'
|
|
|
|
|
inside <- someTill (satisfy (/= '\n')) (char '`')
|
|
|
|
|
closing <- count (length opening - 1) (char '`')
|
|
|
|
|
return (Code (Unit (concatMap escapeChar inside)))
|
|
|
|
|
|
|
|
|
|
-- Parse a link
|
|
|
|
|
parseLink :: Parser MdToken
|
|
|
|
|
parseLink = do
|
|
|
|
|
char '['
|
|
|
|
|
linkText <- someTill parseLineToken (char ']')
|
|
|
|
|
linkText <- manyTill parseLineToken (char ']')
|
|
|
|
|
char '('
|
|
|
|
|
linkURL <- manyTill anySingle (char ')')
|
|
|
|
|
return $ Link (Line linkText) (URL linkURL)
|
|
|
|
@ -259,6 +260,13 @@ parseUnit = do
|
|
|
|
|
text <- anySingle
|
|
|
|
|
return (Unit [text])
|
|
|
|
|
|
|
|
|
|
-- Parse any character except a newline
|
|
|
|
|
parseUnitExceptNewline :: Parser MdToken
|
|
|
|
|
parseUnitExceptNewline = do
|
|
|
|
|
-- text <- satisfy (`notElem` specialChars)
|
|
|
|
|
text <- satisfy (/= '\n')
|
|
|
|
|
return (Unit [text])
|
|
|
|
|
|
|
|
|
|
lineParsers :: [Parser MdToken]
|
|
|
|
|
lineParsers =
|
|
|
|
|
[ parseLinebreak,
|
|
|
|
|