Skip to content

Commit

Permalink
Don't convert to lowercase in email obfuscation.
Browse files Browse the repository at this point in the history
Closes jgm#839.
  • Loading branch information
jgm committed Apr 25, 2013
1 parent fd36acf commit d776ee1
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions src/Text/Pandoc/Writers/HTML.hs
Original file line number Diff line number Diff line change
Expand Up @@ -338,19 +338,21 @@ footnoteSection opts notes =

-- | Parse a mailto link; return Just (name, domain) or Nothing.
parseMailto :: String -> Maybe (String, String)
parseMailto ('m':'a':'i':'l':'t':'o':':':addr) =
let (name', rest) = span (/='@') addr
domain = drop 1 rest
in Just (name', domain)
parseMailto _ = Nothing
parseMailto s = do
case break (==':') s of
(xs,':':addr) | map toLower xs == "mailto" -> do
let (name', rest) = span (/='@') addr
let domain = drop 1 rest
return (name', domain)
_ -> fail "not a mailto: URL"

-- | Obfuscate a "mailto:" link.
obfuscateLink :: WriterOptions -> String -> String -> Html
obfuscateLink opts txt s | writerEmailObfuscation opts == NoObfuscation =
H.a ! A.href (toValue s) $ toHtml txt
obfuscateLink opts txt s =
let meth = writerEmailObfuscation opts
s' = map toLower s
s' = map toLower (take 7 s) ++ drop 7 s
in case parseMailto s' of
(Just (name', domain)) ->
let domain' = substitute "." " dot " domain
Expand Down

0 comments on commit d776ee1

Please sign in to comment.