git.iko.soy/typeable/pandoc
on master help sign in
Added getReader, getWriter to Text.Pandoc.
commit71e0c206c169c12e30bec4869dd04e166ef7ed5d authorJohn MacFarlane <jgm@berkeley.edu> dateThu 9 Aug 2012, 19:11 (14 years ago) parent41e0075
1 file changed+31
src/Text/Pandoc.hs+31
src/Text/Pandoc.hs+31
@@ -100,6 +100,8 @@ module Text.Pandoc
100100 -- * Version
101101 , pandocVersion
102102 -- * Miscellaneous
103+ , getReader
104+ , getWriter
103105 , rtfEmbedImage
104106 , jsonFilter
105107 , ToJsonFilter(..)
@@ -222,6 +224,35 @@ writers = [
222224 ,("asciidoc" , PureStringWriter writeAsciiDoc)
223225 ]
224226
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+
225256{-# DEPRECATED jsonFilter "Use toJsonFilter instead" #-}
226257-- | Converts a transformation on the Pandoc AST into a function
227258-- that reads and writes a JSON-encoded string. This is useful