{-# OPTIONS_GHC -Wall #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE TypeFamilies #-}
module Text.Pandoc.Z.ReaderOptions(
HasReaderOptions(..)
, AsReaderOptions(..)
, HasTrackChanges(..)
, AsTrackChanges(..)
, ReaderOptions(ReaderOptions)
, defaultReaderOptions
) where
import Control.Lens ( prism', Lens', Prism' )
import Data.Set ( Set )
import qualified Data.Set as Set
import Data.Text ( Text )
import qualified Data.Text as Text
import Text.Pandoc.Options(ReaderOptions(ReaderOptions), TrackChanges(..))
class HasReaderOptions a where
readerOptions ::
Lens' a ReaderOptions
standalone ::
Lens' a Bool
standalone =
(ReaderOptions -> f ReaderOptions) -> a -> f a
forall a. HasReaderOptions a => Lens' a ReaderOptions
Lens' a ReaderOptions
readerOptions ((ReaderOptions -> f ReaderOptions) -> a -> f a)
-> ((Bool -> f Bool) -> ReaderOptions -> f ReaderOptions)
-> (Bool -> f Bool)
-> a
-> f a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Bool -> f Bool) -> ReaderOptions -> f ReaderOptions
forall a. HasReaderOptions a => Lens' a Bool
Lens' ReaderOptions Bool
standalone
indentedCodeClasses ::
Lens' a [Text]
indentedCodeClasses =
(ReaderOptions -> f ReaderOptions) -> a -> f a
forall a. HasReaderOptions a => Lens' a ReaderOptions
Lens' a ReaderOptions
readerOptions ((ReaderOptions -> f ReaderOptions) -> a -> f a)
-> (([Text] -> f [Text]) -> ReaderOptions -> f ReaderOptions)
-> ([Text] -> f [Text])
-> a
-> f a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ([Text] -> f [Text]) -> ReaderOptions -> f ReaderOptions
forall a. HasReaderOptions a => Lens' a [Text]
Lens' ReaderOptions [Text]
indentedCodeClasses
abbreviations ::
Lens' a (Set Text)
abbreviations =
(ReaderOptions -> f ReaderOptions) -> a -> f a
forall a. HasReaderOptions a => Lens' a ReaderOptions
Lens' a ReaderOptions
readerOptions ((ReaderOptions -> f ReaderOptions) -> a -> f a)
-> ((Set Text -> f (Set Text)) -> ReaderOptions -> f ReaderOptions)
-> (Set Text -> f (Set Text))
-> a
-> f a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Set Text -> f (Set Text)) -> ReaderOptions -> f ReaderOptions
forall a. HasReaderOptions a => Lens' a (Set Text)
Lens' ReaderOptions (Set Text)
abbreviations
defaultImageExtension ::
Lens' a Text
defaultImageExtension =
(ReaderOptions -> f ReaderOptions) -> a -> f a
forall a. HasReaderOptions a => Lens' a ReaderOptions
Lens' a ReaderOptions
readerOptions ((ReaderOptions -> f ReaderOptions) -> a -> f a)
-> ((Text -> f Text) -> ReaderOptions -> f ReaderOptions)
-> (Text -> f Text)
-> a
-> f a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Text -> f Text) -> ReaderOptions -> f ReaderOptions
forall a. HasReaderOptions a => Lens' a Text
Lens' ReaderOptions Text
defaultImageExtension
::
Lens' a Bool
stripComments =
(ReaderOptions -> f ReaderOptions) -> a -> f a
forall a. HasReaderOptions a => Lens' a ReaderOptions
Lens' a ReaderOptions
readerOptions ((ReaderOptions -> f ReaderOptions) -> a -> f a)
-> ((Bool -> f Bool) -> ReaderOptions -> f ReaderOptions)
-> (Bool -> f Bool)
-> a
-> f a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Bool -> f Bool) -> ReaderOptions -> f ReaderOptions
forall a. HasReaderOptions a => Lens' a Bool
Lens' ReaderOptions Bool
stripComments
instance HasReaderOptions ReaderOptions where
readerOptions :: Lens' ReaderOptions ReaderOptions
readerOptions =
(ReaderOptions -> f ReaderOptions)
-> ReaderOptions -> f ReaderOptions
forall a. a -> a
id
standalone :: Lens' ReaderOptions Bool
standalone Bool -> f Bool
f (ReaderOptions Extensions
e Bool
s Int
c Int
t [Text]
i Set Text
a Text
g TrackChanges
h Bool
m) =
(Bool -> ReaderOptions) -> f Bool -> f ReaderOptions
forall a b. (a -> b) -> f a -> f b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\Bool
s' -> Extensions
-> Bool
-> Int
-> Int
-> [Text]
-> Set Text
-> Text
-> TrackChanges
-> Bool
-> ReaderOptions
ReaderOptions Extensions
e Bool
s' Int
c Int
t [Text]
i Set Text
a Text
g TrackChanges
h Bool
m) (Bool -> f Bool
f Bool
s)
indentedCodeClasses :: Lens' ReaderOptions [Text]
indentedCodeClasses [Text] -> f [Text]
f (ReaderOptions Extensions
e Bool
s Int
c Int
t [Text]
i Set Text
a Text
g TrackChanges
h Bool
m) =
([Text] -> ReaderOptions) -> f [Text] -> f ReaderOptions
forall a b. (a -> b) -> f a -> f b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\[Text]
i' -> Extensions
-> Bool
-> Int
-> Int
-> [Text]
-> Set Text
-> Text
-> TrackChanges
-> Bool
-> ReaderOptions
ReaderOptions Extensions
e Bool
s Int
c Int
t [Text]
i' Set Text
a Text
g TrackChanges
h Bool
m) ([Text] -> f [Text]
f [Text]
i)
abbreviations :: Lens' ReaderOptions (Set Text)
abbreviations Set Text -> f (Set Text)
f (ReaderOptions Extensions
e Bool
s Int
c Int
t [Text]
i Set Text
a Text
g TrackChanges
h Bool
m) =
(Set Text -> ReaderOptions) -> f (Set Text) -> f ReaderOptions
forall a b. (a -> b) -> f a -> f b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\Set Text
a' -> Extensions
-> Bool
-> Int
-> Int
-> [Text]
-> Set Text
-> Text
-> TrackChanges
-> Bool
-> ReaderOptions
ReaderOptions Extensions
e Bool
s Int
c Int
t [Text]
i Set Text
a' Text
g TrackChanges
h Bool
m) (Set Text -> f (Set Text)
f Set Text
a)
defaultImageExtension :: Lens' ReaderOptions Text
defaultImageExtension Text -> f Text
f (ReaderOptions Extensions
e Bool
s Int
c Int
t [Text]
i Set Text
a Text
g TrackChanges
h Bool
m) =
(Text -> ReaderOptions) -> f Text -> f ReaderOptions
forall a b. (a -> b) -> f a -> f b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\Text
g' -> Extensions
-> Bool
-> Int
-> Int
-> [Text]
-> Set Text
-> Text
-> TrackChanges
-> Bool
-> ReaderOptions
ReaderOptions Extensions
e Bool
s Int
c Int
t [Text]
i Set Text
a Text
g' TrackChanges
h Bool
m) (Text -> f Text
f Text
g)
stripComments :: Lens' ReaderOptions Bool
stripComments Bool -> f Bool
f (ReaderOptions Extensions
e Bool
s Int
c Int
t [Text]
i Set Text
a Text
g TrackChanges
h Bool
m) =
(Bool -> ReaderOptions) -> f Bool -> f ReaderOptions
forall a b. (a -> b) -> f a -> f b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Extensions
-> Bool
-> Int
-> Int
-> [Text]
-> Set Text
-> Text
-> TrackChanges
-> Bool
-> ReaderOptions
ReaderOptions Extensions
e Bool
s Int
c Int
t [Text]
i Set Text
a Text
g TrackChanges
h) (Bool -> f Bool
f Bool
m)
class AsReaderOptions a where
_ReaderOptions ::
Prism' a ReaderOptions
instance AsReaderOptions ReaderOptions where
_ReaderOptions :: Prism' ReaderOptions ReaderOptions
_ReaderOptions =
p ReaderOptions (f ReaderOptions)
-> p ReaderOptions (f ReaderOptions)
forall a. a -> a
id
class HasTrackChanges a where
trackChanges ::
Lens' a TrackChanges
instance HasTrackChanges TrackChanges where
trackChanges :: Lens' TrackChanges TrackChanges
trackChanges =
(TrackChanges -> f TrackChanges) -> TrackChanges -> f TrackChanges
forall a. a -> a
id
instance HasTrackChanges ReaderOptions where
trackChanges :: Lens' ReaderOptions TrackChanges
trackChanges TrackChanges -> f TrackChanges
f (ReaderOptions Extensions
e Bool
s Int
c Int
t [Text]
i Set Text
a Text
g TrackChanges
h Bool
m) =
(TrackChanges -> ReaderOptions)
-> f TrackChanges -> f ReaderOptions
forall a b. (a -> b) -> f a -> f b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\TrackChanges
h' -> Extensions
-> Bool
-> Int
-> Int
-> [Text]
-> Set Text
-> Text
-> TrackChanges
-> Bool
-> ReaderOptions
ReaderOptions Extensions
e Bool
s Int
c Int
t [Text]
i Set Text
a Text
g TrackChanges
h' Bool
m) (TrackChanges -> f TrackChanges
f TrackChanges
h)
class AsTrackChanges a where
_TrackChanges ::
Prism' a TrackChanges
_AcceptChanges ::
Prism' a ()
_AcceptChanges =
p TrackChanges (f TrackChanges) -> p a (f a)
forall a. AsTrackChanges a => Prism' a TrackChanges
Prism' a TrackChanges
_TrackChanges (p TrackChanges (f TrackChanges) -> p a (f a))
-> (p () (f ()) -> p TrackChanges (f TrackChanges))
-> p () (f ())
-> p a (f a)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. p () (f ()) -> p TrackChanges (f TrackChanges)
forall a. AsTrackChanges a => Prism' a ()
Prism' TrackChanges ()
_AcceptChanges
_RejectChanges ::
Prism' a ()
_RejectChanges =
p TrackChanges (f TrackChanges) -> p a (f a)
forall a. AsTrackChanges a => Prism' a TrackChanges
Prism' a TrackChanges
_TrackChanges (p TrackChanges (f TrackChanges) -> p a (f a))
-> (p () (f ()) -> p TrackChanges (f TrackChanges))
-> p () (f ())
-> p a (f a)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. p () (f ()) -> p TrackChanges (f TrackChanges)
forall a. AsTrackChanges a => Prism' a ()
Prism' TrackChanges ()
_RejectChanges
_AllChanges ::
Prism' a ()
_AllChanges =
p TrackChanges (f TrackChanges) -> p a (f a)
forall a. AsTrackChanges a => Prism' a TrackChanges
Prism' a TrackChanges
_TrackChanges (p TrackChanges (f TrackChanges) -> p a (f a))
-> (p () (f ()) -> p TrackChanges (f TrackChanges))
-> p () (f ())
-> p a (f a)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. p () (f ()) -> p TrackChanges (f TrackChanges)
forall a. AsTrackChanges a => Prism' a ()
Prism' TrackChanges ()
_AllChanges
instance AsTrackChanges TrackChanges where
_TrackChanges :: Prism' TrackChanges TrackChanges
_TrackChanges =
p TrackChanges (f TrackChanges) -> p TrackChanges (f TrackChanges)
forall a. a -> a
id
_AcceptChanges :: Prism' TrackChanges ()
_AcceptChanges =
(() -> TrackChanges)
-> (TrackChanges -> Maybe ()) -> Prism' TrackChanges ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
(\() -> TrackChanges
AcceptChanges)
(\case
TrackChanges
AcceptChanges -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
TrackChanges
_ -> Maybe ()
forall a. Maybe a
Nothing)
_RejectChanges :: Prism' TrackChanges ()
_RejectChanges =
(() -> TrackChanges)
-> (TrackChanges -> Maybe ()) -> Prism' TrackChanges ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
(\() -> TrackChanges
RejectChanges)
(\case
TrackChanges
RejectChanges -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
TrackChanges
_ -> Maybe ()
forall a. Maybe a
Nothing)
_AllChanges :: Prism' TrackChanges ()
_AllChanges =
(() -> TrackChanges)
-> (TrackChanges -> Maybe ()) -> Prism' TrackChanges ()
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism'
(\() -> TrackChanges
AllChanges)
(\case
TrackChanges
AllChanges -> () -> Maybe ()
forall a. a -> Maybe a
Just ()
TrackChanges
_ -> Maybe ()
forall a. Maybe a
Nothing)
defaultReaderOptions ::
ReaderOptions
defaultReaderOptions :: ReaderOptions
defaultReaderOptions =
Extensions
-> Bool
-> Int
-> Int
-> [Text]
-> Set Text
-> Text
-> TrackChanges
-> Bool
-> ReaderOptions
ReaderOptions
Extensions
forall a. Monoid a => a
mempty
Bool
False
Int
80
Int
4
[]
(
[Text] -> Set Text
forall a. Ord a => [a] -> Set a
Set.fromList (
(String -> Text) -> [String] -> [Text]
forall a b. (a -> b) -> [a] -> [b]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap String -> Text
Text.pack [
String
"Mr.", String
"Mrs.", String
"Ms.", String
"Capt.", String
"Dr.", String
"Prof.",
String
"Gen.", String
"Gov.", String
"e.g.", String
"i.e.", String
"Sgt.", String
"St.",
String
"vol.", String
"vs.", String
"Sen.", String
"Rep.", String
"Pres.", String
"Hon.",
String
"Rev.", String
"Ph.D.", String
"M.D.", String
"M.A.", String
"p.", String
"pp.",
String
"ch.", String
"sec.", String
"cf.", String
"cp."
]
)
)
Text
forall a. Monoid a => a
mempty
TrackChanges
AcceptChanges
Bool
False