@@ -32,6 +32,7 @@ writers.
32module Main where
32module Main where
33import Text.Pandoc
33import Text.Pandoc
34import Text.Pandoc.ODT
34import Text.Pandoc.ODT
35+import Text.Pandoc.Templates (getDefaultTemplate)
35import Text.Pandoc.Shared ( HTMLMathMethod (..), tabFilter, ObfuscationMethod (..) )
36import Text.Pandoc.Shared ( HTMLMathMethod (..), tabFilter, ObfuscationMethod (..) )
36#ifdef _HIGHLIGHTING
37#ifdef _HIGHLIGHTING
37import Text.Pandoc.Highlighting ( languages )
38import Text.Pandoc.Highlighting ( languages )
@@ -96,26 +97,26 @@ readers = [("native" , readPandoc)
96readPandoc :: ParserState -> String -> Pandoc
97readPandoc :: ParserState -> String -> Pandoc
97readPandoc _ = read
98readPandoc _ = read
99−-- | Association list of formats and pairs of writers and default headers.
100+-- | Association list of formats and writers.
100−writers :: [ ( String, ( WriterOptions -> Pandoc -> String, String ) ) ]
101+writers :: [ ( String, WriterOptions -> Pandoc -> String ) ]
101−writers = [("native" , (writeDoc, ""))
102+writers = [("native" , writeDoc)
102− ,("html" , (writeHtmlString, ""))
103+ ,("html" , writeHtmlString)
103− ,("html+lhs" , (writeHtmlString, ""))
104+ ,("html+lhs" , writeHtmlString)
104− ,("s5" , (writeS5String, defaultS5Template))
105+ ,("s5" , writeS5String)
105− ,("docbook" , (writeDocbook, defaultDocbookTemplate))
106+ ,("docbook" , writeDocbook)
106− ,("opendocument" , (writeOpenDocument, defaultOpenDocumentTemplate))
107+ ,("opendocument" , writeOpenDocument)
107− ,("odt" , (writeOpenDocument, defaultOpenDocumentTemplate))
108+ ,("odt" , writeOpenDocument)
108− ,("latex" , (writeLaTeX, defaultLaTeXTemplate))
109+ ,("latex" , writeLaTeX)
109− ,("latex+lhs" , (writeLaTeX, defaultLaTeXTemplate))
110+ ,("latex+lhs" , writeLaTeX)
110− ,("context" , (writeConTeXt, defaultConTeXtTemplate))
111+ ,("context" , writeConTeXt)
111− ,("texinfo" , (writeTexinfo, ""))
112+ ,("texinfo" , writeTexinfo)
112− ,("man" , (writeMan, ""))
113+ ,("man" , writeMan)
113− ,("markdown" , (writeMarkdown, ""))
114+ ,("markdown" , writeMarkdown)
114− ,("markdown+lhs" , (writeMarkdown, ""))
115+ ,("markdown+lhs" , writeMarkdown)
115− ,("rst" , (writeRST, ""))
116+ ,("rst" , writeRST)
116− ,("rst+lhs" , (writeRST, ""))
117+ ,("rst+lhs" , writeRST)
117− ,("mediawiki" , (writeMediaWiki, ""))
118+ ,("mediawiki" , writeMediaWiki)
118− ,("rtf" , (writeRTF, defaultRTFTemplate))
119+ ,("rtf" , writeRTF)
121isNonTextOutput :: String -> Bool
122isNonTextOutput :: String -> Bool
@@ -427,10 +428,10 @@ options =
427 , Option "D" ["print-default-template"]
428 , Option "D" ["print-default-template"]
429 (\arg _ -> do
430 (\arg _ -> do
430− let template = case (lookup arg writers) of
431+ templ <- getDefaultTemplate arg
431− Just (_, h) -> h
432+ case templ of
432− Nothing -> error ("Unknown reader: " ++ arg)
433− hPutStr stdout template
433+ Right t -> hPutStr stdout t
434+ Left e -> error $ show e
434 exitWith ExitSuccess)
435 exitWith ExitSuccess)
435 "FORMAT")
436 "FORMAT")
436 "" -- "Print default template for FORMAT"
437 "" -- "Print default template for FORMAT"
@@ -610,9 +611,14 @@ main = do
610 Just r -> return r
611 Just r -> return r
611 Nothing -> error ("Unknown reader: " ++ readerName')
612 Nothing -> error ("Unknown reader: " ++ readerName')
613− (writer, defaultTemplate) <- case (lookup writerName' writers) of
614+ writer <- case (lookup writerName' writers) of
614− Just (w,h) -> return (w, h)
615+ Just r -> return r
615− Nothing -> error ("Unknown writer: " ++ writerName')
616+ Nothing -> error ("Unknown writer: " ++ writerName')
618+ templ <- getDefaultTemplate writerName'
619+ let defaultTemplate = case templ of
621+ Left e -> error (show e)
617 environment <- getEnvironment
623 environment <- getEnvironment
618 let columns = case lookup "COLUMNS" environment of
624 let columns = case lookup "COLUMNS" environment of