diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Text/Pandoc/Class/IO.hs | 4 | ||||
| -rw-r--r-- | src/Text/Pandoc/Readers/FB2.hs | 4 | ||||
| -rw-r--r-- | src/Text/Pandoc/Readers/HTML.hs | 5 | ||||
| -rw-r--r-- | src/Text/Pandoc/SelfContained.hs | 4 | ||||
| -rw-r--r-- | src/Text/Pandoc/Writers/FB2.hs | 6 |
5 files changed, 12 insertions, 11 deletions
diff --git a/src/Text/Pandoc/Class/IO.hs b/src/Text/Pandoc/Class/IO.hs index 760990129..4ede6df10 100644 --- a/src/Text/Pandoc/Class/IO.hs +++ b/src/Text/Pandoc/Class/IO.hs @@ -37,7 +37,7 @@ module Text.Pandoc.Class.IO import Control.Monad.Except (throwError) import Control.Monad.IO.Class (MonadIO, liftIO) -import Data.ByteString.Base64 (decodeBase64Lenient) +import Data.ByteString.Base64 (decodeLenient) import Data.ByteString.Lazy (toChunks) import Data.Text (Text, pack, unpack) import Data.Time (TimeZone, UTCTime) @@ -128,7 +128,7 @@ openURL u let contents = UTF8.fromString $ drop 1 rest case break (== ';') (filter (/= ' ') mimespec) of (mime, ";base64") -> - return (decodeBase64Lenient contents, Just (T.pack mime)) + return (decodeLenient contents, Just (T.pack mime)) (mime, _) -> return (contents, Just (T.pack mime)) | otherwise = do diff --git a/src/Text/Pandoc/Readers/FB2.hs b/src/Text/Pandoc/Readers/FB2.hs index 2844c9266..8f5a75418 100644 --- a/src/Text/Pandoc/Readers/FB2.hs +++ b/src/Text/Pandoc/Readers/FB2.hs @@ -25,7 +25,7 @@ TODO: module Text.Pandoc.Readers.FB2 ( readFB2 ) where import Control.Monad.Except (throwError) import Control.Monad.State.Strict -import Data.ByteString.Lazy.Base64 +import Data.ByteString.Base64.Lazy import Data.Functor import Data.List (intersperse) import qualified Data.Map as M @@ -202,7 +202,7 @@ parseBinaryElement e = report $ IgnoredElement "binary without content-type attribute" (Just filename, contentType) -> insertMedia (T.unpack filename) contentType - (decodeBase64Lenient + (decodeLenient (UTF8.fromTextLazy . TL.fromStrict . strContent $ e)) -- * Type parsers diff --git a/src/Text/Pandoc/Readers/HTML.hs b/src/Text/Pandoc/Readers/HTML.hs index 42e12c419..475c3fff2 100644 --- a/src/Text/Pandoc/Readers/HTML.hs +++ b/src/Text/Pandoc/Readers/HTML.hs @@ -28,7 +28,7 @@ import Control.Applicative ((<|>)) import Control.Monad (guard, mzero, unless, void) import Control.Monad.Except (throwError, catchError) import Control.Monad.Reader (ask, asks, lift, local, runReaderT) -import Data.Text.Encoding.Base64 (encodeBase64) +import Data.ByteString.Base64 (encode) import Data.Char (isAlphaNum, isLetter) import Data.Default (Default (..), def) import Data.Foldable (for_) @@ -807,7 +807,8 @@ pSvg = do contents <- many (notFollowedBy (pCloses "svg") >> pAny) closet <- TagClose "svg" <$ (pCloses "svg" <|> eof) let rawText = T.strip $ renderTags' (opent : contents ++ [closet]) - let svgData = "data:image/svg+xml;base64," <> encodeBase64 rawText + let svgData = "data:image/svg+xml;base64," <> + UTF8.toText (encode $ UTF8.fromText rawText) return $ B.imageWith (ident,cls,[]) svgData mempty mempty pCodeWithClass :: PandocMonad m => Text -> Text -> TagParser m Inlines diff --git a/src/Text/Pandoc/SelfContained.hs b/src/Text/Pandoc/SelfContained.hs index dccf1b999..7a39edc22 100644 --- a/src/Text/Pandoc/SelfContained.hs +++ b/src/Text/Pandoc/SelfContained.hs @@ -19,7 +19,7 @@ module Text.Pandoc.SelfContained ( makeDataURI, makeSelfContained ) where import Codec.Compression.GZip as Gzip import Control.Applicative ((<|>)) import Data.ByteString (ByteString) -import Data.ByteString.Base64 (encodeBase64) +import Data.ByteString.Base64 (encode) import qualified Data.ByteString.Char8 as B import qualified Data.ByteString.Lazy as L import qualified Data.Text as T @@ -52,7 +52,7 @@ makeDataURI :: (MimeType, ByteString) -> T.Text makeDataURI (mime, raw) = if textual then "data:" <> mime' <> "," <> T.pack (escapeURIString isOk (toString raw)) - else "data:" <> mime' <> ";base64," <> encodeBase64 raw + else "data:" <> mime' <> ";base64," <> toText (encode raw) where textual = "text/" `T.isPrefixOf` mime mime' = if textual && T.any (== ';') mime then mime <> ";charset=utf-8" diff --git a/src/Text/Pandoc/Writers/FB2.hs b/src/Text/Pandoc/Writers/FB2.hs index 7e62f2a5a..f92832538 100644 --- a/src/Text/Pandoc/Writers/FB2.hs +++ b/src/Text/Pandoc/Writers/FB2.hs @@ -21,16 +21,16 @@ module Text.Pandoc.Writers.FB2 (writeFB2) where import Control.Monad (zipWithM, liftM) import Control.Monad.Except (catchError, throwError) import Control.Monad.State.Strict (StateT, evalStateT, get, gets, lift, modify) -import Data.ByteString.Base64 (encodeBase64) +import Data.ByteString.Base64 (encode) import Data.Char (isAscii, isControl, isSpace) import Data.Either (lefts, rights) import Data.List (intercalate) import Data.Text (Text) import qualified Data.Text as T import qualified Data.Text.Lazy as TL +import qualified Data.Text.Encoding as TE import Text.Pandoc.URI (urlEncode, isURI) import Text.Pandoc.XML.Light as X - import Text.Pandoc.Class.PandocMonad (PandocMonad, report) import qualified Text.Pandoc.Class.PandocMonad as P import Text.Pandoc.Definition @@ -237,7 +237,7 @@ fetchImage href link = do report $ CouldNotDetermineMimeType link return Nothing Just mime -> return $ Just (mime, - encodeBase64 bs)) + TE.decodeUtf8 $ encode bs)) (\e -> do report $ CouldNotFetchResource link (tshow e) return Nothing) |
