@@ -169,23 +169,14 @@ outputToBlock _ Err{ errName = ename,
169-- the output format.
169-- the output format.
170handleData :: PandocMonad m
170handleData :: PandocMonad m
171 => ReaderOptions -> JSONMeta -> MimeBundle -> m B.Blocks
171 => ReaderOptions -> JSONMeta -> MimeBundle -> m B.Blocks
172−handleData opts metadata (MimeBundle mb) = do
172+handleData opts metadata (MimeBundle mb) =
173− let mimePairs = M.toList mb
173+ mconcat <$> mapM dataBlock (M.toList mb)
175− results <- mapM dataBlock mimePairs
177− -- return the result with highest priority:
179− let highest = maximum (0 : map fst results)
180− return $ case [r | (pr, r) <- results, pr == highest] of
186 exts = readerExtensions opts
177 exts = readerExtensions opts
188− dataBlock :: PandocMonad m => (MimeType, MimeData) -> m (Int, B.Blocks)
179+ dataBlock :: PandocMonad m => (MimeType, MimeData) -> m B.Blocks
189 dataBlock (mt, BinaryData bs)
180 dataBlock (mt, BinaryData bs)
190 | "image/" `T.isPrefixOf` mt
181 | "image/" `T.isPrefixOf` mt
@@ -206,29 +197,26 @@ handleData opts metadata (MimeBundle mb) = do
206 Nothing -> ""
197 Nothing -> ""
207 Just ext -> '.':ext
198 Just ext -> '.':ext
208 insertMedia fname (Just mt') bl
199 insertMedia fname (Just mt') bl
209− return (3, B.para $ B.imageWith ("",[],metaPairs) fname "" mempty)
200+ return $ B.para $ B.imageWith ("",[],metaPairs) fname "" mempty
211− dataBlock (_, BinaryData _) = return (0, mempty)
201+ | otherwise = return mempty
213 dataBlock ("text/html", TextualData t)
203 dataBlock ("text/html", TextualData t)
214 | extensionEnabled Ext_raw_html exts
204 | extensionEnabled Ext_raw_html exts
215− = return (2, B.rawBlock "html" $ T.unpack t)
205+ = return $ B.rawBlock "html" $ T.unpack t
216− | otherwise = do -- try parsing the HTML
206+ | otherwise = return mempty
217− Pandoc _ bls <- readHtml opts t
218− return (1, B.fromList bls)
220− dataBlock ("text/latex", TextualData t) =
208+ dataBlock ("text/latex", TextualData t)
221− return $ if extensionEnabled Ext_raw_tex exts
209+ | extensionEnabled Ext_raw_tex exts
222− then (2, B.rawBlock "latex" $ T.unpack t)
210+ = return $ B.rawBlock "latex" $ T.unpack t
223− else (0, mempty)
211+ | otherwise = return mempty
225 dataBlock ("text/plain", TextualData t) =
213 dataBlock ("text/plain", TextualData t) =
226− return (0, B.codeBlock $ T.unpack t)
214+ return $ B.codeBlock $ T.unpack t
228 dataBlock (_, JsonData v) =
216 dataBlock (_, JsonData v) =
229− return (2, B.codeBlockWith ("",["json"],[]) $ toStringLazy $ encode v)
217+ return $ B.codeBlockWith ("",["json"],[]) $ toStringLazy $ encode v
231− dataBlock _ = return (0, mempty)
219+ dataBlock _ = return mempty
233jsonMetaToMeta :: JSONMeta -> M.Map String MetaValue
221jsonMetaToMeta :: JSONMeta -> M.Map String MetaValue
234jsonMetaToMeta = M.mapKeys T.unpack . M.map valueToMetaValue
222jsonMetaToMeta = M.mapKeys T.unpack . M.map valueToMetaValue