From bf3a911a1c3421424ba4d5a0ac3a7f8e494d715a Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Tue, 15 Jan 2013 12:44:50 -0800 Subject: Changed Ext_autolink_urls -> Ext_autolink_bare_uris. Added tests. --- src/Text/Pandoc/Parsing.hs | 7 +++++-- 1 file changed, 5 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 1bc0e689a..26e8c2325 100644 --- a/src/Text/Pandoc/Parsing.hs +++ b/src/Text/Pandoc/Parsing.hs @@ -212,7 +212,7 @@ notFollowedBy' p = try $ join $ do a <- try p -- (This version due to Andrew Pimlott on the Haskell mailing list.) oneOfStrings' :: (Char -> Char -> Bool) -> [String] -> Parser [Char] st String -oneOfStrings' matches [] = fail "no strings" +oneOfStrings' _ [] = fail "no strings" oneOfStrings' matches strs = try $ do c <- anyChar let strs' = [xs | (x:xs) <- strs, x `matches` c] @@ -392,10 +392,13 @@ schemes = ["coap","doi","javascript","aaa","aaas","about","acap","cap","cid", "ventrilo","view-source","webcal","wtai","wyciwyg","xfire","xri", "ymsgr"] +uriScheme :: Parser [Char] st String +uriScheme = oneOfStringsCI schemes + -- | Parses a URI. Returns pair of original and URI-escaped version. uri :: Parser [Char] st (String, String) uri = try $ do - scheme <- oneOfStringsCI schemes + scheme <- uriScheme char ':' -- /^[\/\w\u0080-\uffff]+|%[A-Fa-f0-9]+|&#?\w+;|(?:[,]+|[\S])[%&~\w\u0080-\uffff]/ -- We allow punctuation except at the end, since -- cgit v1.2.3