diff --git a/src/MdToHTML.hs b/src/MdToHTML.hs
index 715741d..4b3fa83 100644
--- a/src/MdToHTML.hs
+++ b/src/MdToHTML.hs
@@ -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,