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,