git.iko.soy/typeable/pandoc
on master help sign in
PDF: make sure that verbosity is respected when we fetch items.
2d964ddJohn MacFarlane
src/Text/Pandoc/PDF.hs+19−10
@@ -62,7 +62,8 @@ import qualified Codec.Picture as JP
62#ifdef _WINDOWS
62#ifdef _WINDOWS
63import Data.List (intercalate)
63import Data.List (intercalate)
64#endif
64#endif
65−import Text.Pandoc.Class (PandocIO, runIOorExplode, fetchItem, setMediaBag, runIO)
65+import Text.Pandoc.Class (PandocIO, runIOorExplode, fetchItem,
66+ setVerbosity, setMediaBag, runIO)
66
67
67#ifdef _WINDOWS
68#ifdef _WINDOWS
68changePathSeparators :: FilePath -> FilePath
69changePathSeparators :: FilePath -> FilePath
@@ -99,12 +100,16 @@ makePDF "wkhtmltopdf" writer opts verbosity _ doc@(Pandoc meta _) = liftIO $ do
99 ,("margin-left", fromMaybe (Just "1.25in")
100 ,("margin-left", fromMaybe (Just "1.25in")
100 (getField "margin-left" meta'))
101 (getField "margin-left" meta'))
101 ]
102 ]
102− source <- runIOorExplode $ writer opts doc
103+ source <- runIOorExplode $ do
104+ setVerbosity verbosity
105+ writer opts doc
103 html2pdf verbosity args source
106 html2pdf verbosity args source
104makePDF program writer opts verbosity mediabag doc =
107makePDF program writer opts verbosity mediabag doc =
105 liftIO $ withTempDir "tex2pdf." $ \tmpdir -> do
108 liftIO $ withTempDir "tex2pdf." $ \tmpdir -> do
106− doc' <- handleImages opts mediabag tmpdir doc
109+ doc' <- handleImages verbosity opts mediabag tmpdir doc
107− source <- runIOorExplode $ writer opts doc'
110+ source <- runIOorExplode $ do
111+ setVerbosity verbosity
112+ writer opts doc'
108 let args = writerLaTeXArgs opts
113 let args = writerLaTeXArgs opts
109 case takeBaseName program of
114 case takeBaseName program of
110 "context" -> context2pdf verbosity tmpdir source
115 "context" -> context2pdf verbosity tmpdir source
@@ -112,25 +117,29 @@ makePDF program writer opts verbosity mediabag doc =
112 -> tex2pdf' verbosity args tmpdir program source
117 -> tex2pdf' verbosity args tmpdir program source
113 _ -> return $ Left $ UTF8.fromStringLazy $ "Unknown program " ++ program
118 _ -> return $ Left $ UTF8.fromStringLazy $ "Unknown program " ++ program
114
119
120+handleImages :: Verbosity
115−handleImages :: WriterOptions
121+ -> WriterOptions
116 -> MediaBag
122 -> MediaBag
117 -> FilePath -- ^ temp dir to store images
123 -> FilePath -- ^ temp dir to store images
118 -> Pandoc -- ^ document
124 -> Pandoc -- ^ document
119 -> IO Pandoc
125 -> IO Pandoc
120−handleImages opts mediabag tmpdir =
126+handleImages verbosity opts mediabag tmpdir =
127+ walkM (convertImages tmpdir) <=<
121− walkM (convertImages tmpdir) <=< walkM (handleImage' opts mediabag tmpdir)
128+ walkM (handleImage' verbosity opts mediabag tmpdir)
122
129
130+handleImage' :: Verbosity
123−handleImage' :: WriterOptions
131+ -> WriterOptions
124 -> MediaBag
132 -> MediaBag
125 -> FilePath
133 -> FilePath
126 -> Inline
134 -> Inline
127 -> IO Inline
135 -> IO Inline
128−handleImage' opts mediabag tmpdir (Image attr ils (src,tit)) = do
136+handleImage' verbosity opts mediabag tmpdir (Image attr ils (src,tit)) = do
129 exists <- doesFileExist src
137 exists <- doesFileExist src
130 if exists
138 if exists
131 then return $ Image attr ils (src,tit)
139 then return $ Image attr ils (src,tit)
132 else do
140 else do
133 res <- runIO $ do
141 res <- runIO $ do
142+ setVerbosity verbosity
134 setMediaBag mediabag
143 setMediaBag mediabag
135 fetchItem (writerSourceURL opts) src
144 fetchItem (writerSourceURL opts) src
136 case res of
145 case res of
@@ -145,7 +154,7 @@ handleImage' opts mediabag tmpdir (Image attr ils (src,tit)) = do
145 warn $ "Could not find image `" ++ src ++ "', skipping..."
154 warn $ "Could not find image `" ++ src ++ "', skipping..."
146 -- return alt text
155 -- return alt text
147 return $ Emph ils
156 return $ Emph ils
148−handleImage' _ _ _ x = return x
157+handleImage' _ _ _ _ x = return x
149
158
150convertImages :: FilePath -> Inline -> IO Inline
159convertImages :: FilePath -> Inline -> IO Inline
151convertImages tmpdir (Image attr ils (src, tit)) = do
160convertImages tmpdir (Image attr ils (src, tit)) = do