Skip to content

Commit 69e13ec

Browse files
committed
SelfContained: escape only what is needed in textual data URIs.
1 parent a93f2fd commit 69e13ec

1 file changed

Lines changed: 2 additions & 5 deletions

File tree

src/Text/Pandoc/SelfContained.hs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import qualified Data.ByteString.Lazy as L
2525
import qualified Data.Text as T
2626
import Data.Char (isAlphaNum, isAscii, toLower)
2727
import Crypto.Hash (hashWith, SHA1(SHA1))
28-
import Network.URI (escapeURIString)
28+
import Network.URI (escapeURIString, isUnescapedInURI)
2929
import System.FilePath (takeDirectory, takeExtension, (</>))
3030
import Text.HTML.TagSoup
3131
import Text.Pandoc.Class.PandocMonad (PandocMonad (..), fetchItem,
@@ -44,13 +44,10 @@ import Data.Maybe (isNothing)
4444
import qualified Data.Map as M
4545
import Control.Monad.State
4646

47-
isOk :: Char -> Bool
48-
isOk c = isAscii c && isAlphaNum c
49-
5047
makeDataURI :: (MimeType, ByteString) -> T.Text
5148
makeDataURI (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

Comments
 (0)