@@ -36,6 +36,7 @@ Ipynb (Jupyter notebook JSON format) reader for pandoc.
3636module Text.Pandoc.Readers.Ipynb ( readIpynb )
3737where
3838import Prelude
39+import Data.List (isPrefixOf)
3940import Data.Maybe (fromMaybe)
4041import Data.Digest.Pure.SHA (sha1, showDigest)
4142import Text.Pandoc.Options
@@ -46,6 +47,7 @@ import Data.Ipynb as Ipynb
4647import Text.Pandoc.Class
4748import Text.Pandoc.MIME (extensionFromMimeType)
4849import Text.Pandoc.UTF8
50+import Text.Pandoc.Walk (walk)
4951import Text.Pandoc.Error
5052import Data.Text (Text)
5153import qualified Data.Map as M
@@ -95,7 +97,7 @@ cellToBlocks opts lang c = do
9597 mapM_ addAttachment attachments
9698 case cellType c of
9799 Ipynb.Markdown -> do
98− Pandoc _ bs <- readMarkdown opts source
100+ Pandoc _ bs <- walk fixImage <$> readMarkdown opts source
99101 return $ B.divWith ("",["cell","markdown"],kvs)
100102 $ B.fromList bs
101103 Ipynb.Heading lev -> do
@@ -122,6 +124,12 @@ cellToBlocks opts lang c = do
122124 B.codeBlockWith ("",[lang],[]) (T.unpack source)
123125 <> outputBlocks
124126
127+-- Remove attachment: prefix from images...
128+fixImage :: Inline -> Inline
129+fixImage (Image attr lab (src,tit))
130+ | "attachment:" `isPrefixOf` src = Image attr lab (drop 11 src, tit)
131+fixImage x = x
132+
125133addAttachment :: PandocMonad m => (Text, MimeBundle) -> m ()
126134addAttachment (fname, mimeBundle) = do
127135 let fp = T.unpack fname