pandocz-0.0.2: src/Text/Pandoc/Z/Util.hs
{-# OPTIONS_GHC -Wall #-}
module Text.Pandoc.Z.Util(
unwrapPandoc
, readPandoc
, readPandocExtensions
, readPandocPlainExtensions
, readPandocPhpMarkdownExtraExtensions
, readPandocGithubMarkdownExtensions
, readPandocMultimarkdownExtensions
, readPandocStrictExtensions
, readPandocDefaultExtensions
, writePandoc
, writePandocExtensions
, writePandocPlainExtensions
, writePandocPhpMarkdownExtraExtensions
, writePandocGithubMarkdownExtensions
, writePandocMultimarkdownExtensions
, writePandocStrictExtensions
, writePandocDefaultExtensions
, (.~~)
) where
import Control.Lens
( (&), view, (.~), set, _Wrapped, ASetter, Field1(_1) )
import Data.Default ( Default(def) )
import Data.Stringz(HasText(text))
import Data.Text as Text ( Text )
import Text.Pandoc.Class ( PandocPure(unPandocPure) )
import Text.Pandoc.Error ( PandocError )
import Text.Pandoc.Extensions
( getDefaultExtensions,
githubMarkdownExtensions,
multimarkdownExtensions,
pandocExtensions,
phpMarkdownExtraExtensions,
plainExtensions,
strictExtensions )
import Text.Pandoc.Z.Extensions ( HasExtensions(extensions) )
import Text.Pandoc.Z.ReaderOptions
( ReaderOptions, defaultReaderOptions )
import Text.Pandoc.Z.WriterOptions
( WriterOptions, defaultWriterOptions )
unwrapPandoc ::
PandocPure a
-> Either PandocError a
unwrapPandoc x =
view (_1 . _1) (view _Wrapped (view _Wrapped (view (_Wrapped . _Wrapped) (unPandocPure x) def) def))
readPandoc ::
HasText s =>
(ReaderOptions -> Text -> PandocPure a)
-> s
-> Either PandocError a
readPandoc f =
unwrapPandoc . f defaultReaderOptions . view text
readPandocExtensions ::
HasText s =>
(ReaderOptions -> Text -> PandocPure a)
-> s
-> Either PandocError a
readPandocExtensions f =
readPandoc (\o -> f (o & extensions .~ pandocExtensions))
readPandocPlainExtensions ::
HasText s =>
(ReaderOptions -> Text -> PandocPure a)
-> s
-> Either PandocError a
readPandocPlainExtensions f =
readPandoc (\o -> f (o & extensions .~ plainExtensions))
readPandocPhpMarkdownExtraExtensions ::
HasText s =>
(ReaderOptions -> Text -> PandocPure a)
-> s
-> Either PandocError a
readPandocPhpMarkdownExtraExtensions f =
readPandoc (\o -> f (o & extensions .~ phpMarkdownExtraExtensions))
readPandocGithubMarkdownExtensions ::
HasText s =>
(ReaderOptions -> Text -> PandocPure a)
-> s
-> Either PandocError a
readPandocGithubMarkdownExtensions f =
readPandoc (\o -> f (o & extensions .~ githubMarkdownExtensions))
readPandocMultimarkdownExtensions ::
HasText s =>
(ReaderOptions -> Text -> PandocPure a)
-> s
-> Either PandocError a
readPandocMultimarkdownExtensions f =
readPandoc (\o -> f (o & extensions .~ multimarkdownExtensions))
readPandocStrictExtensions ::
HasText s =>
(ReaderOptions -> Text -> PandocPure a)
-> s
-> Either PandocError a
readPandocStrictExtensions f =
readPandoc (\o -> f (o & extensions .~ strictExtensions))
readPandocDefaultExtensions ::
HasText s =>
Text
-> (ReaderOptions -> Text -> PandocPure a)
-> s
-> Either PandocError a
readPandocDefaultExtensions t f =
readPandoc (\o -> f (o & extensions .~ getDefaultExtensions t))
writePandoc ::
(WriterOptions -> b -> PandocPure a)
-> b
-> Either PandocError a
writePandoc f =
unwrapPandoc . f defaultWriterOptions
writePandocExtensions ::
(WriterOptions -> b -> PandocPure a)
-> b
-> Either PandocError a
writePandocExtensions f =
writePandoc (\o -> f (o & extensions .~ pandocExtensions))
writePandocPlainExtensions ::
(WriterOptions -> b -> PandocPure a)
-> b
-> Either PandocError a
writePandocPlainExtensions f =
writePandoc (\o -> f (o & extensions .~ plainExtensions))
writePandocPhpMarkdownExtraExtensions ::
(WriterOptions -> b -> PandocPure a)
-> b
-> Either PandocError a
writePandocPhpMarkdownExtraExtensions f =
writePandoc (\o -> f (o & extensions .~ phpMarkdownExtraExtensions))
writePandocGithubMarkdownExtensions ::
(WriterOptions -> b -> PandocPure a)
-> b
-> Either PandocError a
writePandocGithubMarkdownExtensions f =
writePandoc (\o -> f (o & extensions .~ githubMarkdownExtensions))
writePandocMultimarkdownExtensions ::
(WriterOptions -> b -> PandocPure a)
-> b
-> Either PandocError a
writePandocMultimarkdownExtensions f =
writePandoc (\o -> f (o & extensions .~ multimarkdownExtensions))
writePandocStrictExtensions ::
(WriterOptions -> b -> PandocPure a)
-> b
-> Either PandocError a
writePandocStrictExtensions f =
writePandoc (\o -> f (o & extensions .~ strictExtensions))
writePandocDefaultExtensions ::
Text
-> (WriterOptions -> b -> PandocPure a)
-> b
-> Either PandocError a
writePandocDefaultExtensions t f =
writePandoc (\o -> f (o & extensions .~ getDefaultExtensions t))
(.~~) ::
Monoid s =>
ASetter s t a b
-> b
-> t
r .~~ x =
set r x mempty
infixr 4 .~~