Added getReader, getWriter to Text.Pandoc.

This commit is contained in:
John MacFarlane 2012-08-09 19:11:19 -07:00
parent 41e0075789
commit 71e0c206c1

View file

@ -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