@@ -1145,11 +1145,10 @@ source :: GenParser Char ParserState (String, [Char])
1146 (try $ charsInBalanced '(' ')' litChar >>= parseFromString source') <|>
1146 (try $ charsInBalanced '(' ')' litChar >>= parseFromString source') <|>
1147 -- the following is needed for cases like: [ref](/url(a).
1147 -- the following is needed for cases like: [ref](/url(a).
1148− (enclosed (char '(') (char ')') anyChar >>=
1149− parseFromString source')
1148+ (enclosed (char '(') (char ')') litChar >>= parseFromString source')
1151-- auxiliary function for source
1150-- auxiliary function for source
1152−source' :: GenParser Char st (String, [Char])
1151+source' :: GenParser Char ParserState (String, [Char])
1153source' = do
1152source' = do
1154 skipSpaces
1153 skipSpaces
1155 let nl = char '\n' >>~ notFollowedBy blankline
1154 let nl = char '\n' >>~ notFollowedBy blankline
@@ -1158,22 +1157,21 @@ source' = do
1158 skipMany spaceChar
1157 skipMany spaceChar
1159 optional nl
1158 optional nl
1160 skipMany spaceChar
1159 skipMany spaceChar
1161− many1 (satisfy $ not . isBlank)
1160+ many1 $ escapedChar' <|> satisfy (not . isBlank)
1162− let betweenAngles = try $ char '<' >>
1161+ let betweenAngles = try $
1163− manyTill (noneOf ">\n" <|> nl) (char '>')
1162+ char '<' >> manyTill (escapedChar' <|> noneOf ">\n" <|> nl) (char '>')
1164 src <- try betweenAngles <|> sourceURL
1163 src <- try betweenAngles <|> sourceURL
1165 tit <- option "" linkTitle
1164 tit <- option "" linkTitle
1166 skipSpaces
1165 skipSpaces
1168 return (escapeURI $ removeTrailingSpace src, tit)
1167 return (escapeURI $ removeTrailingSpace src, tit)
1170−linkTitle :: GenParser Char st String
1169+linkTitle :: GenParser Char ParserState String
1171−linkTitle = try $ do
1170+linkTitle = try $ do
1172 (many1 spaceChar >> option '\n' newline) <|> newline
1171 (many1 spaceChar >> option '\n' newline) <|> newline
1173 skipSpaces
1172 skipSpaces
1174 delim <- oneOf "'\""
1173 delim <- oneOf "'\""
1175− tit <- manyTill (optional (char '\\') >> anyChar)
1176− (try (char delim >> skipSpaces >> eof))
1174+ tit <- manyTill litChar (try (char delim >> skipSpaces >> eof))
1177 return $ decodeCharacterReferences tit
1175 return $ decodeCharacterReferences tit
1179link :: GenParser Char ParserState Inline
1177link :: GenParser Char ParserState Inline