From 59764fa3884e63ee9711cc2d0da2ef3133c641ba Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Fri, 15 Feb 2013 22:39:49 -0800 Subject: Parsing: uri, email: resolve entities. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A markdown link `` should be a link to http://göogle.com. --- src/Text/Pandoc/Parsing.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/Text/Pandoc/Parsing.hs') diff --git a/src/Text/Pandoc/Parsing.hs b/src/Text/Pandoc/Parsing.hs index ebff8ec77..062e66eff 100644 --- a/src/Text/Pandoc/Parsing.hs +++ b/src/Text/Pandoc/Parsing.hs @@ -149,6 +149,7 @@ where import Text.Pandoc.Definition import Text.Pandoc.Options import Text.Pandoc.Builder (Blocks, Inlines, rawBlock) +import Text.Pandoc.XML (fromEntities) import qualified Text.Pandoc.UTF8 as UTF8 (putStrLn) import Text.Parsec import Text.Parsec.Pos (newPos) @@ -369,7 +370,7 @@ romanNumeral upperCase = do -- escaped mailto: URI. emailAddress :: Parser [Char] st (String, String) emailAddress = try $ liftA2 toResult mailbox (char '@' *> domain) - where toResult mbox dom = let full = mbox ++ '@':dom + where toResult mbox dom = let full = fromEntities $ mbox ++ '@':dom in (full, escapeURI $ "mailto:" ++ full) mailbox = intercalate "." `fmap` (emailWord `sepby1` dot) domain = intercalate "." `fmap` (subdomain `sepby1` dot) @@ -440,7 +441,7 @@ uri = try $ do <|> enclosed (char '[') (char ']') uriChunk) <|> uriChunk)) str' <- option str $ char '/' >> return (str ++ "/") - let uri' = scheme ++ ":" ++ str' + let uri' = scheme ++ ":" ++ fromEntities str' return (uri', escapeURI uri') -- | Applies a parser, returns tuple of its results and its horizontal -- cgit v1.2.3