@@ -25,7 +25,7 @@ import qualified Data.ByteString.Lazy as L
2525import qualified Data.Text as T
2626import Data.Char (isAlphaNum , isAscii , toLower )
2727import Crypto.Hash (hashWith , SHA1 (SHA1 ))
28- import Network.URI (escapeURIString )
28+ import Network.URI (escapeURIString , isUnescapedInURI )
2929import System.FilePath (takeDirectory , takeExtension , (</>) )
3030import Text.HTML.TagSoup
3131import Text.Pandoc.Class.PandocMonad (PandocMonad (.. ), fetchItem ,
@@ -44,13 +44,10 @@ import Data.Maybe (isNothing)
4444import qualified Data.Map as M
4545import Control.Monad.State
4646
47- isOk :: Char -> Bool
48- isOk c = isAscii c && isAlphaNum c
49-
5047makeDataURI :: (MimeType , ByteString ) -> T. Text
5148makeDataURI (mime, raw) =
5249 if textual
53- then " data:" <> mime' <> " ," <> T. pack (escapeURIString isOk (toString raw))
50+ then " data:" <> mime' <> " ," <> T. pack (escapeURIString isUnescapedInURI (toString raw))
5451 else " data:" <> mime' <> " ;base64," <> toText (encode raw')
5552 where textual = " text/" `T.isPrefixOf` mime
5653 raw' = if " +xml" `T.isSuffixOf` mime
0 commit comments