git.iko.soy/typeable/pandoc
on master help sign in
Don't convert to lowercase in email obfuscation.

Closes #839.

commitd776ee191e405b658793d0fa27ff8d22ee40ad7c authorJohn MacFarlane <jgm@berkeley.edu> dateThu 25 Apr 2013, 12:28 (14 years ago) parentfd36acf
1 file changed+8−6
src/Text/Pandoc/Writers/HTML.hs+8−6
src/Text/Pandoc/Writers/HTML.hs+8−6
@@ -338,11 +338,13 @@ footnoteSection opts notes =
338338
339339-- | Parse a mailto link; return Just (name, domain) or Nothing.
340340parseMailto :: String -> Maybe (String, String)
341−parseMailto ('m':'a':'i':'l':'t':'o':':':addr) =
342− let (name', rest) = span (/='@') addr
343− domain = drop 1 rest
344− in Just (name', domain)
345−parseMailto _ = Nothing
341+parseMailto s = do
342+ case break (==':') s of
343+ (xs,':':addr) | map toLower xs == "mailto" -> do
344+ let (name', rest) = span (/='@') addr
345+ let domain = drop 1 rest
346+ return (name', domain)
347+ _ -> fail "not a mailto: URL"
346348
347349-- | Obfuscate a "mailto:" link.
348350obfuscateLink :: WriterOptions -> String -> String -> Html
@@ -350,7 +352,7 @@ obfuscateLink opts txt s | writerEmailObfuscation opts == NoObfuscation =
350352 H.a ! A.href (toValue s) $ toHtml txt
351353obfuscateLink opts txt s =
352354 let meth = writerEmailObfuscation opts
353− s' = map toLower s
355+ s' = map toLower (take 7 s) ++ drop 7 s
354356 in case parseMailto s' of
355357 (Just (name', domain)) ->
356358 let domain' = substitute "." " dot " domain