git.iko.soy/typeable/pandoc
on master help sign in
Ipynb reader: properly handle image/svg+xml as an image.
8d07940John MacFarlane
src/Text/Pandoc/Readers/Ipynb.hs+5−3
@@ -156,7 +156,7 @@ handleData metadata (MimeBundle mb) =
156 where
156 where
157
157
158 dataBlock :: PandocMonad m => (MimeType, MimeData) -> m B.Blocks
158 dataBlock :: PandocMonad m => (MimeType, MimeData) -> m B.Blocks
159− dataBlock (mt, BinaryData bs)
159+ dataBlock (mt, d)
160 | "image/" `T.isPrefixOf` mt
160 | "image/" `T.isPrefixOf` mt
161 = do
161 = do
162 -- normally metadata maps from mime types to key-value map;
162 -- normally metadata maps from mime types to key-value map;
@@ -168,7 +168,10 @@ handleData metadata (MimeBundle mb) =
168 Error _ -> mempty
168 Error _ -> mempty
169 _ -> mempty
169 _ -> mempty
170 let metaPairs = jsonMetaToPairs meta
170 let metaPairs = jsonMetaToPairs meta
171+ let bl = case d of
171− let bl = BL.fromStrict bs
172+ BinaryData bs -> BL.fromStrict bs
173+ TextualData t -> BL.fromStrict $ UTF8.fromText t
174+ JsonData v -> encode v
172 -- SHA1 hash for filename
175 -- SHA1 hash for filename
173 let fname = T.pack (showDigest (sha1 bl)) <>
176 let fname = T.pack (showDigest (sha1 bl)) <>
174 case extensionFromMimeType mt of
177 case extensionFromMimeType mt of
@@ -176,7 +179,6 @@ handleData metadata (MimeBundle mb) =
176 Just ext -> "." <> ext
179 Just ext -> "." <> ext
177 insertMedia (T.unpack fname) (Just mt) bl
180 insertMedia (T.unpack fname) (Just mt) bl
178 return $ B.para $ B.imageWith ("",[],metaPairs) fname "" mempty
181 return $ B.para $ B.imageWith ("",[],metaPairs) fname "" mempty
179− | otherwise = return mempty
180
182
181 dataBlock ("text/html", TextualData t)
183 dataBlock ("text/html", TextualData t)
182 = return $ B.rawBlock "html" t
184 = return $ B.rawBlock "html" t