diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Text/Pandoc/Class/IO.hs | 8 |
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 |
