git.iko.soy/typeable/pandoc
on master help sign in
Ipynb reader: properly handle image/svg+xml as an image.

Partially addresses #6430.

commit8d07940828877902b34642a66d2581d504d1adea authorJohn MacFarlane <jgm@berkeley.edu> dateTue 9 Jun 2020, 09:41 (6 years ago) parenta71278b
1 file changed+5−3
src/Text/Pandoc/Readers/Ipynb.hs+5−3
src/Text/Pandoc/Readers/Ipynb.hs+5−3
@@ -156,7 +156,7 @@ handleData metadata (MimeBundle mb) =
156156 where
157157
158158 dataBlock :: PandocMonad m => (MimeType, MimeData) -> m B.Blocks
159− dataBlock (mt, BinaryData bs)
159+ dataBlock (mt, d)
160160 | "image/" `T.isPrefixOf` mt
161161 = do
162162 -- normally metadata maps from mime types to key-value map;
@@ -168,7 +168,10 @@ handleData metadata (MimeBundle mb) =
168168 Error _ -> mempty
169169 _ -> mempty
170170 let metaPairs = jsonMetaToPairs meta
171− let bl = BL.fromStrict bs
171+ let bl = case d of
172+ BinaryData bs -> BL.fromStrict bs
173+ TextualData t -> BL.fromStrict $ UTF8.fromText t
174+ JsonData v -> encode v
172175 -- SHA1 hash for filename
173176 let fname = T.pack (showDigest (sha1 bl)) <>
174177 case extensionFromMimeType mt of
@@ -176,7 +179,6 @@ handleData metadata (MimeBundle mb) =
176179 Just ext -> "." <> ext
177180 insertMedia (T.unpack fname) (Just mt) bl
178181 return $ B.para $ B.imageWith ("",[],metaPairs) fname "" mempty
179− | otherwise = return mempty
180182
181183 dataBlock ("text/html", TextualData t)
182184 = return $ B.rawBlock "html" t