git.iko.soy/typeable/pandoc
on master help sign in
Added getReader, getWriter to Text.Pandoc.
71e0c20John MacFarlane
src/Text/Pandoc.hs+31
@@ -100,6 +100,8 @@ module Text.Pandoc
100 -- * Version
100 -- * Version
101 , pandocVersion
101 , pandocVersion
102 -- * Miscellaneous
102 -- * Miscellaneous
103+ , getReader
104+ , getWriter
103 , rtfEmbedImage
105 , rtfEmbedImage
104 , jsonFilter
106 , jsonFilter
105 , ToJsonFilter(..)
107 , ToJsonFilter(..)
@@ -222,6 +224,35 @@ writers = [
222 ,("asciidoc" , PureStringWriter writeAsciiDoc)
224 ,("asciidoc" , PureStringWriter writeAsciiDoc)
223 ]
225 ]
224
226
227+getReader :: String -> Either String (ReaderOptions -> String -> Pandoc)
228+getReader s =
229+ case parseFormatSpec s of
230+ Left e -> Left $ show e
231+ Right (readerName, setExts) ->
232+ case lookup readerName readers of
233+ Nothing -> Left $ "Unknown reader: " ++ readerName
234+ Just r -> Right $ \o ->
235+ r o{ readerExtensions = setExts $
236+ readerExtensions o }
237+
238+-- | Retrieve writer based on formatSpec (format+extensions).
239+getWriter :: String -> Either String Writer
240+getWriter s =
241+ case parseFormatSpec s of
242+ Left e -> Left $ show e
243+ Right (writerName, setExts) ->
244+ case lookup writerName writers of
245+ Nothing -> Left $ "Unknown writer: " ++ writerName
246+ Just (PureStringWriter r) -> Right $ PureStringWriter $
247+ \o -> r o{ writerExtensions = setExts $
248+ writerExtensions o }
249+ Just (IOStringWriter r) -> Right $ IOStringWriter $
250+ \o -> r o{ writerExtensions = setExts $
251+ writerExtensions o }
252+ Just (IOByteStringWriter r) -> Right $ IOByteStringWriter $
253+ \o -> r o{ writerExtensions = setExts $
254+ writerExtensions o }
255+
225{-# DEPRECATED jsonFilter "Use toJsonFilter instead" #-}
256{-# DEPRECATED jsonFilter "Use toJsonFilter instead" #-}
226-- | Converts a transformation on the Pandoc AST into a function
257-- | Converts a transformation on the Pandoc AST into a function
227-- that reads and writes a JSON-encoded string. This is useful
258-- that reads and writes a JSON-encoded string. This is useful