diff options
author | John MacFarlane <jgm@berkeley.edu> | 2012-08-09 19:11:19 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2012-08-09 19:11:19 -0700 |
commit | 71e0c206c169c12e30bec4869dd04e166ef7ed5d (patch) | |
tree | 53479eaa26357d0ebea28f65e9223ea9e2df8aad /src | |
parent | 41e00757898c48b96edf297320edb1c1d2341a92 (diff) | |
download | pandoc-71e0c206c169c12e30bec4869dd04e166ef7ed5d.tar.gz |
Added getReader, getWriter to Text.Pandoc.
Diffstat (limited to 'src')
-rw-r--r-- | src/Text/Pandoc.hs | 31 |
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 |