diff options
author | Jonas Smedegaard <dr@jones.dk> | 2012-04-24 11:09:16 -0400 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2012-04-24 11:09:16 -0400 |
commit | b4a6193dca853094ca273f230876a80166f32a1d (patch) | |
tree | 5fd0e668f7e9dbec1f3fb1eda15f7658034d6b74 /src/pandoc.hs | |
parent | b27a86d9758512d85d052a9a46917a54eb3da035 (diff) |
Imported Upstream version 1.9.2
Diffstat (limited to 'src/pandoc.hs')
-rw-r--r-- | src/pandoc.hs | 45 |
1 files changed, 21 insertions, 24 deletions
diff --git a/src/pandoc.hs b/src/pandoc.hs index 3853d360a..dab7b4161 100644 --- a/src/pandoc.hs +++ b/src/pandoc.hs @@ -295,14 +295,13 @@ options = , Option "V" ["variable"] (ReqArg - (\arg opt -> - case break (`elem` ":=") arg of - (k,_:v) -> do - let newvars = optVariables opt ++ [(k,v)] - return opt{ optVariables = newvars } - _ -> err 17 $ - "Could not parse `" ++ arg ++ "' as a key/value pair (k=v or k:v)") - "KEY:VALUE") + (\arg opt -> do + let (key,val) = case break (`elem` ":=") arg of + (k,_:v) -> (k,v) + (k,_) -> (k,"true") + let newvars = optVariables opt ++ [(key,val)] + return opt{ optVariables = newvars }) + "KEY[:VALUE]") "" -- "Use custom template" , Option "D" ["print-default-template"] @@ -833,10 +832,12 @@ main = do let pdfOutput = map toLower (takeExtension outputFile) == ".pdf" + let laTeXOutput = writerName' == "latex" || writerName' == "beamer" || + writerName' == "latex+lhs" || writerName' == "beamer+lhs" + when pdfOutput $ do -- make sure writer is latex or beamer - unless (writerName' == "latex" || writerName' == "beamer" || - writerName' == "latex+lhs") $ + unless laTeXOutput $ err 47 $ "cannot produce pdf output with " ++ writerName' ++ " writer" -- check for latex program mbLatex <- findExecutable latexEngine @@ -916,14 +917,13 @@ main = do lhsExtension sources, stateStandalone = standalone', stateCitations = map CSL.refId refs, - stateSmart = smart || writerName' `elem` - ["latex", "context", "latex+lhs", "beamer"], + stateSmart = smart || laTeXOutput || writerName' == "context", stateOldDashes = oldDashes, stateColumns = columns, stateStrict = strict, stateIndentedCodeClasses = codeBlockClasses, - stateApplyMacros = writerName' `notElem` - ["latex", "latex+lhs", "beamer"] } + stateApplyMacros = not laTeXOutput + } let writerOptions = defaultWriterOptions { writerStandalone = standalone', @@ -945,8 +945,7 @@ main = do writerReferenceLinks = referenceLinks, writerWrapText = wrap, writerColumns = columns, - writerLiterateHaskell = "+lhs" `isSuffixOf` writerName' || - lhsExtension [outputFile], + writerLiterateHaskell = False, writerEmailObfuscation = if strict then ReferenceObfuscation else obfuscationMethod, @@ -957,7 +956,7 @@ main = do slideVariant == DZSlides, writerChapters = chapters, writerListings = listings, - writerBeamer = writerName' == "beamer", + writerBeamer = False, writerSlideLevel = slideLevel, writerHighlight = highlight, writerHighlightStyle = highlightStyle, @@ -980,9 +979,7 @@ main = do let convertTabs = tabFilter (if preserveTabs then 0 else tabStop) - let handleIncludes' = if readerName' == "latex" || readerName' == "beamer" || - readerName' == "latex+lhs" || - readerName' == "context" + let handleIncludes' = if readerName' == "latex" || readerName' == "latex+lhs" then handleIncludes else return @@ -1029,18 +1026,18 @@ main = do | writerName' == "docx" -> writeDocx referenceDocx writerOptions doc2 >>= writeBinary | otherwise -> err 9 ("Unknown writer: " ++ writerName') - Just _ + Just w | pdfOutput -> do - res <- tex2pdf latexEngine $ writeLaTeX writerOptions doc2 + res <- tex2pdf latexEngine $ w writerOptions doc2 case res of Right pdf -> writeBinary pdf Left err' -> err 43 $ toString err' - Just r + Just w | htmlFormat && ascii -> writerFn outputFile =<< selfcontain (toEntities result) | otherwise -> writerFn outputFile =<< selfcontain result - where result = r writerOptions doc2 ++ ['\n' | not standalone'] + where result = w writerOptions doc2 ++ ['\n' | not standalone'] htmlFormat = writerName' `elem` ["html","html+lhs","html5","html5+lhs", "s5","slidy","dzslides"] |