git.iko.soy/typeable/pandoc
on master help sign in
Use isURI instead of isAbsoluteURI.

It allows fragments identifiers.

commit386e933432f5badf3149da1e6edaeb2e693bbb9b authorJohn MacFarlane <fiddlosopher@gmail.com> dateWed 16 Oct 2013, 09:48 (13 years ago) parentf37fa15
7 files changed+15−15
src/Text/Pandoc/SelfContained.hs+3−3 src/Text/Pandoc/Shared.hs+2−2 src/Text/Pandoc/Writers/LaTeX.hs+2−2 src/Text/Pandoc/Writers/Markdown.hs+2−2 src/Text/Pandoc/Writers/RST.hs+2−2 src/Text/Pandoc/Writers/RTF.hs+2−2 src/Text/Pandoc/Writers/Texinfo.hs+2−2
src/Text/Pandoc/SelfContained.hs+3−3
@@ -32,7 +32,7 @@ the HTML using data URIs.
3232-}
3333module Text.Pandoc.SelfContained ( makeSelfContained ) where
3434import Text.HTML.TagSoup
35−import Network.URI (isAbsoluteURI, escapeURIString)
35+import Network.URI (isURI, escapeURIString)
3636import Data.ByteString.Base64
3737import qualified Data.ByteString.Char8 as B
3838import Data.ByteString (ByteString)
@@ -86,7 +86,7 @@ cssURLs userdata d orig =
8686 "\"" -> B.takeWhile (/='"') $ B.drop 1 u
8787 "'" -> B.takeWhile (/='\'') $ B.drop 1 u
8888 _ -> u
89− let url' = if isAbsoluteURI url
89+ let url' = if isURI url
9090 then url
9191 else d </> url
9292 (raw, mime) <- getRaw userdata "" url'
@@ -97,7 +97,7 @@ cssURLs userdata d orig =
9797
9898getItem :: Maybe FilePath -> String -> IO (ByteString, Maybe String)
9999getItem userdata f =
100− if isAbsoluteURI f
100+ if isURI f
101101 then openURL f >>= either handleErr return
102102 else do
103103 -- strip off trailing query or fragment part, if relative URL.
src/Text/Pandoc/Shared.hs+2−2
@@ -91,7 +91,7 @@ import Data.Char ( toLower, isLower, isUpper, isAlpha,
9191 isLetter, isDigit, isSpace )
9292import Data.List ( find, isPrefixOf, intercalate )
9393import qualified Data.Map as M
94−import Network.URI ( escapeURIString, isAbsoluteURI, unEscapeString )
94+import Network.URI ( escapeURIString, isURI, unEscapeString )
9595import System.Directory
9696import Text.Pandoc.MIME (getMimeType)
9797import System.FilePath ( (</>), takeExtension, dropExtension )
@@ -624,7 +624,7 @@ readDataFileUTF8 userDir fname =
624624fetchItem :: Maybe String -> String
625625 -> IO (Either E.SomeException (BS.ByteString, Maybe String))
626626fetchItem sourceURL s
627− | isAbsoluteURI s = openURL s
627+ | isURI s = openURL s
628628 | otherwise = case sourceURL of
629629 Just u -> openURL (u ++ "/" ++ s)
630630 Nothing -> E.try readLocalFile
src/Text/Pandoc/Writers/LaTeX.hs+2−2
@@ -36,7 +36,7 @@ import Text.Pandoc.Writers.Shared
3636import Text.Pandoc.Options
3737import Text.Pandoc.Templates
3838import Text.Printf ( printf )
39−import Network.URI ( isAbsoluteURI, unEscapeString )
39+import Network.URI ( isURI, unEscapeString )
4040import Data.List ( (\\), isSuffixOf, isInfixOf,
4141 isPrefixOf, intercalate, intersperse )
4242import Data.Char ( toLower, isPunctuation )
@@ -671,7 +671,7 @@ inlineToLaTeX (Link txt (src, _)) =
671671 contents <> char '}'
672672inlineToLaTeX (Image _ (source, _)) = do
673673 modify $ \s -> s{ stGraphics = True }
674− let source' = if isAbsoluteURI source
674+ let source' = if isURI source
675675 then source
676676 else unEscapeString source
677677 source'' <- stringToLaTeX URLString source'
src/Text/Pandoc/Writers/Markdown.hs+2−2
@@ -47,7 +47,7 @@ import qualified Data.Set as Set
4747import Text.Pandoc.Writers.HTML (writeHtmlString)
4848import Text.Pandoc.Readers.TeXMath (readTeXMath)
4949import Text.HTML.TagSoup (renderTags, parseTags, isTagText, Tag(..))
50−import Network.URI (isAbsoluteURI)
50+import Network.URI (isURI)
5151import Data.Default
5252import Data.Yaml (Value(Object,String,Array,Bool,Number))
5353import qualified Data.HashMap.Strict as H
@@ -753,7 +753,7 @@ inlineToMarkdown opts (Link txt (src, tit)) = do
753753 then empty
754754 else text $ " \"" ++ tit ++ "\""
755755 let srcSuffix = if isPrefixOf "mailto:" src then drop 7 src else src
756− let useAuto = isAbsoluteURI src &&
756+ let useAuto = isURI src &&
757757 case txt of
758758 [Str s] | escapeURI s == srcSuffix -> True
759759 _ -> False
src/Text/Pandoc/Writers/RST.hs+2−2
@@ -38,7 +38,7 @@ import Text.Pandoc.Writers.Shared
3838import Text.Pandoc.Templates (renderTemplate')
3939import Text.Pandoc.Builder (deleteMeta)
4040import Data.List ( isPrefixOf, intersperse, transpose )
41−import Network.URI (isAbsoluteURI)
41+import Network.URI (isURI)
4242import Text.Pandoc.Pretty
4343import Control.Monad.State
4444import Control.Applicative ( (<$>) )
@@ -393,7 +393,7 @@ inlineToRST (LineBreak) = return cr -- there's no line break in RST (see Para)
393393inlineToRST Space = return space
394394-- autolink
395395inlineToRST (Link [Str str] (src, _))
396− | isAbsoluteURI src &&
396+ | isURI src &&
397397 if "mailto:" `isPrefixOf` src
398398 then src == escapeURI ("mailto:" ++ str)
399399 else src == escapeURI str = do
src/Text/Pandoc/Writers/RTF.hs+2−2
@@ -40,7 +40,7 @@ import Data.Char ( ord, chr, isDigit, toLower )
4040import System.FilePath ( takeExtension )
4141import qualified Data.ByteString as B
4242import Text.Printf ( printf )
43−import Network.URI ( isAbsoluteURI, unEscapeString )
43+import Network.URI ( isURI, unEscapeString )
4444import qualified Control.Exception as E
4545
4646-- | Convert Image inlines into a raw RTF embedded image, read from a file.
@@ -48,7 +48,7 @@ import qualified Control.Exception as E
4848rtfEmbedImage :: Inline -> IO Inline
4949rtfEmbedImage x@(Image _ (src,_)) = do
5050 let ext = map toLower (takeExtension src)
51− if ext `elem` [".jpg",".jpeg",".png"] && not (isAbsoluteURI src)
51+ if ext `elem` [".jpg",".jpeg",".png"] && not (isURI src)
5252 then do
5353 let src' = unEscapeString src
5454 imgdata <- E.catch (B.readFile src')
src/Text/Pandoc/Writers/Texinfo.hs+2−2
@@ -40,7 +40,7 @@ import Data.Ord ( comparing )
4040import Data.Char ( chr, ord )
4141import Control.Monad.State
4242import Text.Pandoc.Pretty
43−import Network.URI ( isAbsoluteURI, unEscapeString )
43+import Network.URI ( isURI, unEscapeString )
4444import System.FilePath
4545
4646data WriterState =
@@ -448,7 +448,7 @@ inlineToTexinfo (Image alternate (source, _)) = do
448448 where
449449 ext = drop 1 $ takeExtension source'
450450 base = dropExtension source'
451− source' = if isAbsoluteURI source
451+ source' = if isURI source
452452 then source
453453 else unEscapeString source
454454