aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Text/Pandoc/Class/IO.hs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Class/IO.hs b/src/Text/Pandoc/Class/IO.hs
index 2ae3b5cee..760990129 100644
--- a/src/Text/Pandoc/Class/IO.hs
+++ b/src/Text/Pandoc/Class/IO.hs
@@ -124,9 +124,13 @@ openURL :: (PandocMonad m, MonadIO m) => Text -> m (B.ByteString, Maybe MimeType
openURL u
| Just (URI{ uriScheme = "data:",
uriPath = upath }) <- parseURI (T.unpack u) = do
- let (mime, rest) = break (== ',') $ unEscapeString upath
+ let (mimespec, rest) = break (== ',') $ unEscapeString upath
let contents = UTF8.fromString $ drop 1 rest
- return (decodeBase64Lenient contents, Just (T.pack mime))
+ case break (== ';') (filter (/= ' ') mimespec) of
+ (mime, ";base64") ->
+ return (decodeBase64Lenient contents, Just (T.pack mime))
+ (mime, _) ->
+ return (contents, Just (T.pack mime))
| otherwise = do
let toReqHeader (n, v) = (CI.mk (UTF8.fromText n), UTF8.fromText v)
customHeaders <- map toReqHeader <$> getsCommonState stRequestHeaders