@@ -52,7 +52,8 @@ import Text.Pandoc.MediaBag
5252import Text.Pandoc.Walk (walkM)
5353import Text.Pandoc.Shared (warn, withTempDir, inDirectory, stringify)
5454import Text.Pandoc.Writers.Shared (getField, metaToJSON)
55−import Text.Pandoc.Options (WriterOptions(..), HTMLMathMethod(..))
55+import Text.Pandoc.Options (WriterOptions(..), HTMLMathMethod(..),
56+ Verbosity(..))
5657import Text.Pandoc.MIME (extensionFromMimeType, getMimeType)
5758import Text.Pandoc.Process (pipeProcess)
5859import Control.Monad.Trans (MonadIO(..))
@@ -98,16 +99,16 @@ makePDF "wkhtmltopdf" writer opts _mediabag doc@(Pandoc meta _) = liftIO $ do
9899 (getField "margin-left" meta'))
99100 ]
100101 source <- runIOorExplode $ writer opts doc
101− html2pdf (writerVerbose opts) args source
102+ html2pdf (writerVerbosity opts) args source
102103makePDF program writer opts mediabag doc =
103104 liftIO $ withTempDir "tex2pdf." $ \tmpdir -> do
104105 doc' <- handleImages opts mediabag tmpdir doc
105106 source <- runIOorExplode $ writer opts doc'
106107 let args = writerLaTeXArgs opts
107108 case takeBaseName program of
108− "context" -> context2pdf (writerVerbose opts) tmpdir source
109+ "context" -> context2pdf (writerVerbosity opts) tmpdir source
109110 prog | prog `elem` ["pdflatex", "lualatex", "xelatex"]
110− -> tex2pdf' (writerVerbose opts) args tmpdir program source
111+ -> tex2pdf' (writerVerbosity opts) args tmpdir program source
111112 _ -> return $ Left $ UTF8.fromStringLazy $ "Unknown program " ++ program
112113
113114handleImages :: WriterOptions
@@ -174,17 +175,17 @@ convertImage tmpdir fname =
174175 mime = getMimeType fname
175176 doNothing = return (Right fname)
176177
177−tex2pdf' :: Bool -- ^ Verbose output
178+tex2pdf' :: Verbosity -- ^ Verbosity level
178179 -> [String] -- ^ Arguments to the latex-engine
179180 -> FilePath -- ^ temp directory for output
180181 -> String -- ^ tex program
181182 -> String -- ^ tex source
182183 -> IO (Either ByteString ByteString)
183−tex2pdf' verbose args tmpDir program source = do
184+tex2pdf' verbosity args tmpDir program source = do
184185 let numruns = if "\\tableofcontents" `isInfixOf` source
185186 then 3 -- to get page numbers
186187 else 2 -- 1 run won't give you PDF bookmarks
187− (exit, log', mbPdf) <- runTeXProgram verbose program args 1 numruns tmpDir source
188+ (exit, log', mbPdf) <- runTeXProgram verbosity program args 1 numruns tmpDir source
188189 case (exit, mbPdf) of
189190 (ExitFailure _, _) -> do
190191 let logmsg = extractMsg log'
@@ -222,9 +223,9 @@ extractConTeXtMsg log' = do
222223-- Run a TeX program on an input bytestring and return (exit code,
223224-- contents of stdout, contents of produced PDF if any). Rerun
224225-- a fixed number of times to resolve references.
225−runTeXProgram :: Bool -> String -> [String] -> Int -> Int -> FilePath -> String
226− -> IO (ExitCode, ByteString, Maybe ByteString)
227−runTeXProgram verbose program args runNumber numRuns tmpDir source = do
226+runTeXProgram :: Verbosity -> String -> [String] -> Int -> Int -> FilePath
227+ -> String -> IO (ExitCode, ByteString, Maybe ByteString)
228+runTeXProgram verbosity program args runNumber numRuns tmpDir source = do
228229 let file = tmpDir </> "input.tex"
229230 exists <- doesFileExist file
230231 unless exists $ UTF8.writeFile file source
@@ -244,7 +245,7 @@ runTeXProgram verbose program args runNumber numRuns tmpDir source = do
244245 $ lookup "TEXINPUTS" env'
245246 let env'' = ("TEXINPUTS", texinputs) :
246247 [(k,v) | (k,v) <- env', k /= "TEXINPUTS"]
247− when (verbose && runNumber == 1) $ do
248+ when (verbosity >= INFO && runNumber == 1) $ do
248249 putStrLn "[makePDF] temp dir:"
249250 putStrLn tmpDir'
250251 putStrLn "[makePDF] Command line:"
@@ -257,12 +258,12 @@ runTeXProgram verbose program args runNumber numRuns tmpDir source = do
257258 B.readFile file' >>= B.putStr
258259 putStr "\n"
259260 (exit, out) <- pipeProcess (Just env'') program programArgs BL.empty
260− when verbose $ do
261+ when (verbosity >= INFO) $ do
261262 putStrLn $ "[makePDF] Run #" ++ show runNumber
262263 B.hPutStr stdout out
263264 putStr "\n"
264265 if runNumber <= numRuns
265− then runTeXProgram verbose program args (runNumber + 1) numRuns tmpDir source
266+ then runTeXProgram verbosity program args (runNumber + 1) numRuns tmpDir source
266267 else do
267268 let pdfFile = replaceDirectory (replaceExtension file ".pdf") tmpDir
268269 pdfExists <- doesFileExist pdfFile
@@ -274,17 +275,17 @@ runTeXProgram verbose program args runNumber numRuns tmpDir source = do
274275 else return Nothing
275276 return (exit, out, pdf)
276277
277−html2pdf :: Bool -- ^ Verbose output
278+html2pdf :: Verbosity -- ^ Verbosity level
278279 -> [String] -- ^ Args to wkhtmltopdf
279280 -> String -- ^ HTML5 source
280281 -> IO (Either ByteString ByteString)
281−html2pdf verbose args source = do
282+html2pdf verbosity args source = do
282283 file <- withTempFile "." "html2pdf.html" $ \fp _ -> return fp
283284 pdfFile <- withTempFile "." "html2pdf.pdf" $ \fp _ -> return fp
284285 UTF8.writeFile file source
285286 let programArgs = args ++ [file, pdfFile]
286287 env' <- getEnvironment
287− when verbose $ do
288+ when (verbosity >= INFO) $ do
288289 putStrLn "[makePDF] Command line:"
289290 putStrLn $ "wkhtmltopdf" ++ " " ++ unwords (map show programArgs)
290291 putStr "\n"
@@ -296,7 +297,7 @@ html2pdf verbose args source = do
296297 putStr "\n"
297298 (exit, out) <- pipeProcess (Just env') "wkhtmltopdf" programArgs BL.empty
298299 removeFile file
299− when verbose $ do
300+ when (verbosity >= INFO) $ do
300301 B.hPutStr stdout out
301302 putStr "\n"
302303 pdfExists <- doesFileExist pdfFile
@@ -314,11 +315,11 @@ html2pdf verbose args source = do
314315 (ExitSuccess, Nothing) -> Left ""
315316 (ExitSuccess, Just pdf) -> Right pdf
316317
317−context2pdf :: Bool -- ^ Verbose output
318+context2pdf :: Verbosity -- ^ Verbosity level
318319 -> FilePath -- ^ temp directory for output
319320 -> String -- ^ ConTeXt source
320321 -> IO (Either ByteString ByteString)
321−context2pdf verbose tmpDir source = inDirectory tmpDir $ do
322+context2pdf verbosity tmpDir source = inDirectory tmpDir $ do
322323 let file = "input.tex"
323324 UTF8.writeFile file source
324325#ifdef _WINDOWS
@@ -334,7 +335,7 @@ context2pdf verbose tmpDir source = inDirectory tmpDir $ do
334335 $ lookup "TEXINPUTS" env'
335336 let env'' = ("TEXINPUTS", texinputs) :
336337 [(k,v) | (k,v) <- env', k /= "TEXINPUTS"]
337− when verbose $ do
338+ when (verbosity >= INFO) $ do
338339 putStrLn "[makePDF] temp dir:"
339340 putStrLn tmpDir'
340341 putStrLn "[makePDF] Command line:"
@@ -347,7 +348,7 @@ context2pdf verbose tmpDir source = inDirectory tmpDir $ do
347348 B.readFile file >>= B.putStr
348349 putStr "\n"
349350 (exit, out) <- pipeProcess (Just env'') "context" programArgs BL.empty
350− when verbose $ do
351+ when (verbosity >= INFO) $ do
351352 B.hPutStr stdout out
352353 putStr "\n"
353354 let pdfFile = replaceExtension file ".pdf"