summaryrefslogtreecommitdiff
path: root/src/Text/Pandoc.hs
diff options
context:
space:
mode:
authorAlbert Krewinkel <albert@zeitkraut.de>2017-04-17 11:02:38 +0200
committerAlbert Krewinkel <albert+github@zeitkraut.de>2017-04-26 23:28:40 +0200
commitc2567b2bd03f6dadd971cf8bc81cd93a0dde623e (patch)
tree85b18ddd93960722e8a9155d5e93db072bdb5428 /src/Text/Pandoc.hs
parent0e107a305f048cbe4cc45c6d2d0c8df14f00375a (diff)
API change: move writer functions to Text.Pandoc.Writers
Writer helper functions were defined in the top-level Text.Pandoc module. These functions are moved to the Writer submodule as to enable reuse in other submodules.
Diffstat (limited to 'src/Text/Pandoc.hs')
-rw-r--r--src/Text/Pandoc.hs156
1 files changed, 2 insertions, 154 deletions
diff --git a/src/Text/Pandoc.hs b/src/Text/Pandoc.hs
index afe4bc8c7..345ef3b18 100644
--- a/src/Text/Pandoc.hs
+++ b/src/Text/Pandoc.hs
@@ -70,65 +70,16 @@ module Text.Pandoc
, setVerbosity
-- * Error handling
, module Text.Pandoc.Error
- -- * Lists of writers
- , writers
-- * Readers: converting /to/ Pandoc format
, module Text.Pandoc.Readers
-- * Writers: converting /from/ Pandoc format
- , Writer(..)
- , writeNative
- , writeJSON
- , writeMarkdown
- , writePlain
- , writeRST
- , writeLaTeX
- , writeBeamer
- , writeConTeXt
- , writeTexinfo
- , writeHtml4
- , writeHtml4String
- , writeHtml5
- , writeHtml5String
- , writeRevealJs
- , writeS5
- , writeSlidy
- , writeSlideous
- , writeDZSlides
- , writeICML
- , writeDocbook4
- , writeDocbook5
- , writeJATS
- , writeOPML
- , writeOpenDocument
- , writeMan
- , writeMs
- , writeMediaWiki
- , writeDokuWiki
- , writeZimWiki
- , writeTextile
- , writeRTF
- , writeODT
- , writeDocx
- , writeEPUB2
- , writeEPUB3
- , writeFB2
- , writeOrg
- , writeAsciiDoc
- , writeHaddock
- , writeCommonMark
- , writeCustom
- , writeTEI
- , writeMuse
+ , module Text.Pandoc.Writers
-- * Rendering templates and default templates
, module Text.Pandoc.Templates
-- * Miscellaneous
- , getWriter
, pandocVersion
) where
-import Data.Aeson
-import qualified Data.ByteString.Lazy as BL
-import Data.List (intercalate)
import Text.Pandoc.Class
import Text.Pandoc.Definition
import Text.Pandoc.Error
@@ -138,107 +89,4 @@ import Text.Pandoc.Options
import Text.Pandoc.Readers
import Text.Pandoc.Shared (pandocVersion)
import Text.Pandoc.Templates
-import qualified Text.Pandoc.UTF8 as UTF8
-import Text.Pandoc.Writers.AsciiDoc
-import Text.Pandoc.Writers.CommonMark
-import Text.Pandoc.Writers.ConTeXt
-import Text.Pandoc.Writers.Custom
-import Text.Pandoc.Writers.Docbook
-import Text.Pandoc.Writers.JATS
-import Text.Pandoc.Writers.Docx
-import Text.Pandoc.Writers.DokuWiki
-import Text.Pandoc.Writers.EPUB
-import Text.Pandoc.Writers.FB2
-import Text.Pandoc.Writers.Haddock
-import Text.Pandoc.Writers.HTML
-import Text.Pandoc.Writers.ICML
-import Text.Pandoc.Writers.LaTeX
-import Text.Pandoc.Writers.Man
-import Text.Pandoc.Writers.Ms
-import Text.Pandoc.Writers.Markdown
-import Text.Pandoc.Writers.MediaWiki
-import Text.Pandoc.Writers.Muse
-import Text.Pandoc.Writers.Native
-import Text.Pandoc.Writers.ODT
-import Text.Pandoc.Writers.OpenDocument
-import Text.Pandoc.Writers.OPML
-import Text.Pandoc.Writers.Org
-import Text.Pandoc.Writers.RST
-import Text.Pandoc.Writers.RTF
-import Text.Pandoc.Writers.TEI
-import Text.Pandoc.Writers.Texinfo
-import Text.Pandoc.Writers.Textile
-import Text.Pandoc.Writers.ZimWiki
-import Text.Parsec.Error
-
-data Writer m = StringWriter (WriterOptions -> Pandoc -> m String)
- | ByteStringWriter (WriterOptions -> Pandoc -> m BL.ByteString)
-
--- | Association list of formats and writers.
-writers :: PandocMonad m => [ ( String, Writer m) ]
-writers = [
- ("native" , StringWriter writeNative)
- ,("json" , StringWriter $ \o d -> return $ writeJSON o d)
- ,("docx" , ByteStringWriter writeDocx)
- ,("odt" , ByteStringWriter writeODT)
- ,("epub" , ByteStringWriter writeEPUB3)
- ,("epub2" , ByteStringWriter writeEPUB2)
- ,("epub3" , ByteStringWriter writeEPUB3)
- ,("fb2" , StringWriter writeFB2)
- ,("html" , StringWriter writeHtml5String)
- ,("html4" , StringWriter writeHtml4String)
- ,("html5" , StringWriter writeHtml5String)
- ,("icml" , StringWriter writeICML)
- ,("s5" , StringWriter writeS5)
- ,("slidy" , StringWriter writeSlidy)
- ,("slideous" , StringWriter writeSlideous)
- ,("dzslides" , StringWriter writeDZSlides)
- ,("revealjs" , StringWriter writeRevealJs)
- ,("docbook" , StringWriter writeDocbook5)
- ,("docbook4" , StringWriter writeDocbook4)
- ,("docbook5" , StringWriter writeDocbook5)
- ,("jats" , StringWriter writeJATS)
- ,("opml" , StringWriter writeOPML)
- ,("opendocument" , StringWriter writeOpenDocument)
- ,("latex" , StringWriter writeLaTeX)
- ,("beamer" , StringWriter writeBeamer)
- ,("context" , StringWriter writeConTeXt)
- ,("texinfo" , StringWriter writeTexinfo)
- ,("man" , StringWriter writeMan)
- ,("ms" , StringWriter writeMs)
- ,("markdown" , StringWriter writeMarkdown)
- ,("markdown_strict" , StringWriter writeMarkdown)
- ,("markdown_phpextra" , StringWriter writeMarkdown)
- ,("markdown_github" , StringWriter writeMarkdown)
- ,("markdown_mmd" , StringWriter writeMarkdown)
- ,("plain" , StringWriter writePlain)
- ,("rst" , StringWriter writeRST)
- ,("mediawiki" , StringWriter writeMediaWiki)
- ,("dokuwiki" , StringWriter writeDokuWiki)
- ,("zimwiki" , StringWriter writeZimWiki)
- ,("textile" , StringWriter writeTextile)
- ,("rtf" , StringWriter writeRTF)
- ,("org" , StringWriter writeOrg)
- ,("asciidoc" , StringWriter writeAsciiDoc)
- ,("haddock" , StringWriter writeHaddock)
- ,("commonmark" , StringWriter writeCommonMark)
- ,("tei" , StringWriter writeTEI)
- ,("muse" , StringWriter writeMuse)
- ]
-
-getWriter :: PandocMonad m => String -> Either String (Writer m)
-getWriter s
- = case parseFormatSpec s of
- Left e -> Left $ intercalate "\n" [m | Message m <- errorMessages e]
- Right (writerName, setExts) ->
- case lookup writerName writers of
- Nothing -> Left $ "Unknown writer: " ++ writerName
- Just (StringWriter r) -> Right $ StringWriter $
- \o -> r o{ writerExtensions = setExts $
- getDefaultExtensions writerName }
- Just (ByteStringWriter r) -> Right $ ByteStringWriter $
- \o -> r o{ writerExtensions = setExts $
- getDefaultExtensions writerName }
-
-writeJSON :: WriterOptions -> Pandoc -> String
-writeJSON _ = UTF8.toStringLazy . encode
+import Text.Pandoc.Writers