doctemplates-0.6.1: Pandoc-style document templates

CopyrightCopyright (C) 2009-2019 John MacFarlane
LicenseBSD3
MaintainerJohn MacFarlane <jgm@berkeley.edu>
Stabilityalpha
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Text.DocTemplates.Internal

Description

 
Synopsis

Documentation

renderTemplate :: (TemplateTarget a, ToContext a b) => Template -> b -> a Source #

Render a compiled template in a "context" which provides values for the template's variables.

class Monad m => TemplateMonad m where Source #

A TemplateMonad defines a function to retrieve a partial (from the file system, from a database, or using a default value).

newtype Context a Source #

A Context defines values for template's variables.

Constructors

Context 

Fields

Instances
Functor Context Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

fmap :: (a -> b) -> Context a -> Context b #

(<$) :: a -> Context b -> Context a #

Foldable Context Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

fold :: Monoid m => Context m -> m #

foldMap :: Monoid m => (a -> m) -> Context a -> m #

foldr :: (a -> b -> b) -> b -> Context a -> b #

foldr' :: (a -> b -> b) -> b -> Context a -> b #

foldl :: (b -> a -> b) -> b -> Context a -> b #

foldl' :: (b -> a -> b) -> b -> Context a -> b #

foldr1 :: (a -> a -> a) -> Context a -> a #

foldl1 :: (a -> a -> a) -> Context a -> a #

toList :: Context a -> [a] #

null :: Context a -> Bool #

length :: Context a -> Int #

elem :: Eq a => a -> Context a -> Bool #

maximum :: Ord a => Context a -> a #

minimum :: Ord a => Context a -> a #

sum :: Num a => Context a -> a #

product :: Num a => Context a -> a #

Traversable Context Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

traverse :: Applicative f => (a -> f b) -> Context a -> f (Context b) #

sequenceA :: Applicative f => Context (f a) -> f (Context a) #

mapM :: Monad m => (a -> m b) -> Context a -> m (Context b) #

sequence :: Monad m => Context (m a) -> m (Context a) #

TemplateTarget a => ToContext a (Context a) Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

toContext :: Context a -> Context a Source #

toVal :: Context a -> Val a Source #

Show a => Show (Context a) Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

showsPrec :: Int -> Context a -> ShowS #

show :: Context a -> String #

showList :: [Context a] -> ShowS #

Semigroup (Context a) Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

(<>) :: Context a -> Context a -> Context a #

sconcat :: NonEmpty (Context a) -> Context a #

stimes :: Integral b => b -> Context a -> Context a #

Monoid (Context a) Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

mempty :: Context a #

mappend :: Context a -> Context a -> Context a #

mconcat :: [Context a] -> Context a #

TemplateTarget a => ToJSON (Context a) Source # 
Instance details

Defined in Text.DocTemplates.Internal

TemplateTarget a => FromJSON (Context a) Source # 
Instance details

Defined in Text.DocTemplates.Internal

data Val a Source #

A variable value.

Constructors

SimpleVal a 
ListVal [Val a] 
MapVal (Context a) 
NullVal 
Instances
Functor Val Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

fmap :: (a -> b) -> Val a -> Val b #

(<$) :: a -> Val b -> Val a #

Foldable Val Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

fold :: Monoid m => Val m -> m #

foldMap :: Monoid m => (a -> m) -> Val a -> m #

foldr :: (a -> b -> b) -> b -> Val a -> b #

foldr' :: (a -> b -> b) -> b -> Val a -> b #

foldl :: (b -> a -> b) -> b -> Val a -> b #

foldl' :: (b -> a -> b) -> b -> Val a -> b #

foldr1 :: (a -> a -> a) -> Val a -> a #

foldl1 :: (a -> a -> a) -> Val a -> a #

toList :: Val a -> [a] #

null :: Val a -> Bool #

length :: Val a -> Int #

elem :: Eq a => a -> Val a -> Bool #

maximum :: Ord a => Val a -> a #

minimum :: Ord a => Val a -> a #

sum :: Num a => Val a -> a #

product :: Num a => Val a -> a #

Traversable Val Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

traverse :: Applicative f => (a -> f b) -> Val a -> f (Val b) #

sequenceA :: Applicative f => Val (f a) -> f (Val a) #

mapM :: Monad m => (a -> m b) -> Val a -> m (Val b) #

sequence :: Monad m => Val (m a) -> m (Val a) #

TemplateTarget a => FromContext a (Val a) Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

fromVal :: Val a -> Maybe (Val a) Source #

lookupContext :: Text -> Context a -> Maybe (Val a) Source #

TemplateTarget a => ToContext a (Val a) Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

toContext :: Val a -> Context a Source #

toVal :: Val a -> Val a Source #

Show a => Show (Val a) Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

showsPrec :: Int -> Val a -> ShowS #

show :: Val a -> String #

showList :: [Val a] -> ShowS #

TemplateTarget a => ToJSON (Val a) Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

toJSON :: Val a -> Value #

toEncoding :: Val a -> Encoding #

toJSONList :: [Val a] -> Value #

toEncodingList :: [Val a] -> Encoding #

TemplateTarget a => FromJSON (Val a) Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

parseJSON :: Value -> Parser (Val a) #

parseJSONList :: Value -> Parser [Val a] #

class ToContext a b where Source #

The ToContext class provides automatic conversion to a Context or Val.

Minimal complete definition

toVal

Methods

toContext :: b -> Context a Source #

toVal :: b -> Val a Source #

Instances
TemplateTarget a => ToContext a Bool Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

toContext :: Bool -> Context a Source #

toVal :: Bool -> Val a Source #

TemplateTarget a => ToContext a Value Source # 
Instance details

Defined in Text.DocTemplates.Internal

TemplateTarget a => ToContext a a Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

toContext :: a -> Context a Source #

toVal :: a -> Val a Source #

ToContext String String Source # 
Instance details

Defined in Text.DocTemplates.Internal

ToContext a b => ToContext a [b] Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

toContext :: [b] -> Context a Source #

toVal :: [b] -> Val a Source #

TemplateTarget a => ToContext a (Val a) Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

toContext :: Val a -> Context a Source #

toVal :: Val a -> Val a Source #

TemplateTarget a => ToContext a (Context a) Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

toContext :: Context a -> Context a Source #

toVal :: Context a -> Val a Source #

(TemplateTarget a, HasChars a) => ToContext (Doc a) a Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

toContext :: a -> Context (Doc a) Source #

toVal :: a -> Val (Doc a) Source #

class FromContext a b where Source #

The FromContext class provides functions for extracting values from Val and Context.

Minimal complete definition

fromVal

Methods

fromVal :: Val a -> Maybe b Source #

lookupContext :: Text -> Context a -> Maybe b Source #

Instances
TemplateTarget a => FromContext a a Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

fromVal :: Val a -> Maybe a Source #

lookupContext :: Text -> Context a -> Maybe a Source #

FromContext String String Source # 
Instance details

Defined in Text.DocTemplates.Internal

FromContext a b => FromContext a [b] Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

fromVal :: Val a -> Maybe [b] Source #

lookupContext :: Text -> Context a -> Maybe [b] Source #

TemplateTarget a => FromContext a (Val a) Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

fromVal :: Val a -> Maybe (Val a) Source #

lookupContext :: Text -> Context a -> Maybe (Val a) Source #

class Monoid a => TemplateTarget a where Source #

A type to which templates can be rendered.

data Template Source #

A template.

Instances
Eq Template Source # 
Instance details

Defined in Text.DocTemplates.Internal

Data Template Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Template -> c Template #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Template #

toConstr :: Template -> Constr #

dataTypeOf :: Template -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Template) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Template) #

gmapT :: (forall b. Data b => b -> b) -> Template -> Template #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Template -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Template -> r #

gmapQ :: (forall d. Data d => d -> u) -> Template -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Template -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Template -> m Template #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Template -> m Template #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Template -> m Template #

Ord Template Source # 
Instance details

Defined in Text.DocTemplates.Internal

Read Template Source # 
Instance details

Defined in Text.DocTemplates.Internal

Show Template Source # 
Instance details

Defined in Text.DocTemplates.Internal

Generic Template Source # 
Instance details

Defined in Text.DocTemplates.Internal

Associated Types

type Rep Template :: Type -> Type #

Methods

from :: Template -> Rep Template x #

to :: Rep Template x -> Template #

Semigroup Template Source # 
Instance details

Defined in Text.DocTemplates.Internal

Monoid Template Source # 
Instance details

Defined in Text.DocTemplates.Internal

type Rep Template Source # 
Instance details

Defined in Text.DocTemplates.Internal

type Rep Template = D1 (MetaData "Template" "Text.DocTemplates.Internal" "doctemplates-0.6.1-VSPL8dRpVtIuneAF0zupQ" False) (((C1 (MetaCons "Interpolate" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Variable)) :+: C1 (MetaCons "Conditional" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Variable) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Template) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Template)))) :+: (C1 (MetaCons "Iterate" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Variable) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Template) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Template))) :+: C1 (MetaCons "Nested" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Template)))) :+: ((C1 (MetaCons "Partial" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Template)) :+: C1 (MetaCons "Literal" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text))) :+: (C1 (MetaCons "Concat" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Template) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Template)) :+: (C1 (MetaCons "BreakingSpace" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Empty" PrefixI False) (U1 :: Type -> Type)))))

newtype Variable Source #

A variable which may have several parts (foo.bar.baz).

Constructors

Variable 

Fields

Instances
Eq Variable Source # 
Instance details

Defined in Text.DocTemplates.Internal

Data Variable Source # 
Instance details

Defined in Text.DocTemplates.Internal

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Variable -> c Variable #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Variable #

toConstr :: Variable -> Constr #

dataTypeOf :: Variable -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Variable) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Variable) #

gmapT :: (forall b. Data b => b -> b) -> Variable -> Variable #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Variable -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Variable -> r #

gmapQ :: (forall d. Data d => d -> u) -> Variable -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Variable -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Variable -> m Variable #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Variable -> m Variable #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Variable -> m Variable #

Ord Variable Source # 
Instance details

Defined in Text.DocTemplates.Internal

Read Variable Source # 
Instance details

Defined in Text.DocTemplates.Internal

Show Variable Source # 
Instance details

Defined in Text.DocTemplates.Internal

Generic Variable Source # 
Instance details

Defined in Text.DocTemplates.Internal

Associated Types

type Rep Variable :: Type -> Type #

Methods

from :: Variable -> Rep Variable x #

to :: Rep Variable x -> Variable #

Semigroup Variable Source # 
Instance details

Defined in Text.DocTemplates.Internal

Monoid Variable Source # 
Instance details

Defined in Text.DocTemplates.Internal

type Rep Variable Source # 
Instance details

Defined in Text.DocTemplates.Internal

type Rep Variable = D1 (MetaData "Variable" "Text.DocTemplates.Internal" "doctemplates-0.6.1-VSPL8dRpVtIuneAF0zupQ" True) (C1 (MetaCons "Variable" PrefixI True) (S1 (MetaSel (Just "unVariable") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Text])))