Skip to content

Commit ca4ad3b

Browse files
committed
HTML reader: don't canonicalize data: URIs.
It can be very expensive to call network-uri's URI parser on these. See #10075.
1 parent 669c2b8 commit ca4ad3b

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

src/Text/Pandoc/Readers/HTML.hs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1222,8 +1222,10 @@ htmlTag f = try $ do
12221222

12231223
-- | Adjusts a url according to the document's base URL.
12241224
canonicalizeUrl :: PandocMonad m => Text -> TagParser m Text
1225-
canonicalizeUrl url = do
1226-
mbBaseHref <- baseHref <$> getState
1227-
return $ case (parseURIReference (T.unpack url), mbBaseHref) of
1228-
(Just rel, Just bs) -> tshow (rel `nonStrictRelativeTo` bs)
1229-
_ -> url
1225+
canonicalizeUrl url
1226+
| "data:" `T.isPrefixOf` url = return url
1227+
| otherwise = do
1228+
mbBaseHref <- baseHref <$> getState
1229+
return $ case (parseURIReference (T.unpack url), mbBaseHref) of
1230+
(Just rel, Just bs) -> tshow (rel `nonStrictRelativeTo` bs)
1231+
_ -> url

0 commit comments

Comments
 (0)