aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2012-08-09 19:11:19 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2012-08-09 19:11:19 -0700
commit71e0c206c169c12e30bec4869dd04e166ef7ed5d (patch)
tree53479eaa26357d0ebea28f65e9223ea9e2df8aad /src
parent41e00757898c48b96edf297320edb1c1d2341a92 (diff)
downloadpandoc-71e0c206c169c12e30bec4869dd04e166ef7ed5d.tar.gz
Added getReader, getWriter to Text.Pandoc.
Diffstat (limited to 'src')
-rw-r--r--src/Text/Pandoc.hs31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/Text/Pandoc.hs b/src/Text/Pandoc.hs
index 6a019bc3f..06bfd128f 100644
--- a/src/Text/Pandoc.hs
+++ b/src/Text/Pandoc.hs
@@ -100,6 +100,8 @@ module Text.Pandoc
-- * Version
, pandocVersion
-- * Miscellaneous
+ , getReader
+ , getWriter
, rtfEmbedImage
, jsonFilter
, ToJsonFilter(..)
@@ -222,6 +224,35 @@ writers = [
,("asciidoc" , PureStringWriter writeAsciiDoc)
]
+getReader :: String -> Either String (ReaderOptions -> String -> Pandoc)
+getReader s =
+ case parseFormatSpec s of
+ Left e -> Left $ show e
+ Right (readerName, setExts) ->
+ case lookup readerName readers of
+ Nothing -> Left $ "Unknown reader: " ++ readerName
+ Just r -> Right $ \o ->
+ r o{ readerExtensions = setExts $
+ readerExtensions o }
+
+-- | Retrieve writer based on formatSpec (format+extensions).
+getWriter :: String -> Either String Writer
+getWriter s =
+ case parseFormatSpec s of
+ Left e -> Left $ show e
+ Right (writerName, setExts) ->
+ case lookup writerName writers of
+ Nothing -> Left $ "Unknown writer: " ++ writerName
+ Just (PureStringWriter r) -> Right $ PureStringWriter $
+ \o -> r o{ writerExtensions = setExts $
+ writerExtensions o }
+ Just (IOStringWriter r) -> Right $ IOStringWriter $
+ \o -> r o{ writerExtensions = setExts $
+ writerExtensions o }
+ Just (IOByteStringWriter r) -> Right $ IOByteStringWriter $
+ \o -> r o{ writerExtensions = setExts $
+ writerExtensions o }
+
{-# DEPRECATED jsonFilter "Use toJsonFilter instead" #-}
-- | Converts a transformation on the Pandoc AST into a function
-- that reads and writes a JSON-encoded string. This is useful