| Copyright | Copyright (C) 2009-2019 John MacFarlane |
|---|---|
| License | BSD3 |
| Maintainer | John MacFarlane <jgm@berkeley.edu> |
| Stability | alpha |
| Portability | portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Text.DocTemplates.Internal
Description
Synopsis
- renderTemplate :: (TemplateTarget a, ToContext a b) => Template a -> b -> Doc a
- class Monad m => TemplateMonad (m :: Type -> Type) where
- getPartial :: FilePath -> m Text
- newtype Context a = Context {}
- data Val a
- class ToContext a b where
- class FromContext a b where
- type TemplateTarget a = (HasChars a, ToText a, FromText a)
- data Template a
- data Variable = Variable {}
- data Pipe
- data Alignment
- data Border = Border {
- borderLeft :: Text
- borderRight :: Text
Documentation
renderTemplate :: (TemplateTarget a, ToContext a b) => Template a -> b -> Doc a Source #
Render a compiled template in a "context" which provides values for the template's variables.
class Monad m => TemplateMonad (m :: Type -> Type) where Source #
A TemplateMonad defines a function to retrieve a partial
(from the file system, from a database, or using a default
value).
Methods
getPartial :: FilePath -> m Text Source #
Instances
| TemplateMonad Identity Source # | |
Defined in Text.DocTemplates.Internal | |
| TemplateMonad IO Source # | |
Defined in Text.DocTemplates.Internal | |
A Context defines values for template's variables.
Instances
| Functor Context Source # | |
| Foldable Context Source # | |
Defined in Text.DocTemplates.Internal Methods fold :: Monoid m => Context m -> m Source # foldMap :: Monoid m => (a -> m) -> Context a -> m Source # foldMap' :: Monoid m => (a -> m) -> Context a -> m Source # foldr :: (a -> b -> b) -> b -> Context a -> b Source # foldr' :: (a -> b -> b) -> b -> Context a -> b Source # foldl :: (b -> a -> b) -> b -> Context a -> b Source # foldl' :: (b -> a -> b) -> b -> Context a -> b Source # foldr1 :: (a -> a -> a) -> Context a -> a Source # foldl1 :: (a -> a -> a) -> Context a -> a Source # toList :: Context a -> [a] Source # null :: Context a -> Bool Source # length :: Context a -> Int Source # elem :: Eq a => a -> Context a -> Bool Source # maximum :: Ord a => Context a -> a Source # minimum :: Ord a => Context a -> a Source # | |
| Traversable Context Source # | |
Defined in Text.DocTemplates.Internal | |
| ToContext a (Context a) Source # | |
| TemplateTarget a => FromJSON (Context a) Source # | |
| TemplateTarget a => ToJSON (Context a) Source # | |
| Monoid (Context a) Source # | |
| Semigroup (Context a) Source # | |
| Data a => Data (Context a) Source # | |
Defined in Text.DocTemplates.Internal Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Context a -> c (Context a) Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Context a) Source # toConstr :: Context a -> Constr Source # dataTypeOf :: Context a -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Context a)) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Context a)) Source # gmapT :: (forall b. Data b => b -> b) -> Context a -> Context a Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Context a -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Context a -> r Source # gmapQ :: (forall d. Data d => d -> u) -> Context a -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> Context a -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Context a -> m (Context a) Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Context a -> m (Context a) Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Context a -> m (Context a) Source # | |
| Show a => Show (Context a) Source # | |
A variable value.
Instances
| Functor Val Source # | |
| Foldable Val Source # | |
Defined in Text.DocTemplates.Internal Methods fold :: Monoid m => Val m -> m Source # foldMap :: Monoid m => (a -> m) -> Val a -> m Source # foldMap' :: Monoid m => (a -> m) -> Val a -> m Source # foldr :: (a -> b -> b) -> b -> Val a -> b Source # foldr' :: (a -> b -> b) -> b -> Val a -> b Source # foldl :: (b -> a -> b) -> b -> Val a -> b Source # foldl' :: (b -> a -> b) -> b -> Val a -> b Source # foldr1 :: (a -> a -> a) -> Val a -> a Source # foldl1 :: (a -> a -> a) -> Val a -> a Source # toList :: Val a -> [a] Source # null :: Val a -> Bool Source # length :: Val a -> Int Source # elem :: Eq a => a -> Val a -> Bool Source # maximum :: Ord a => Val a -> a Source # minimum :: Ord a => Val a -> a Source # | |
| Traversable Val Source # | |
| TemplateTarget a => FromContext a (Val a) Source # | |
| ToContext a (Val a) Source # | |
| TemplateTarget a => FromJSON (Val a) Source # | |
| TemplateTarget a => ToJSON (Val a) Source # | |
| Data a => Data (Val a) Source # | |
Defined in Text.DocTemplates.Internal Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Val a -> c (Val a) Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Val a) Source # toConstr :: Val a -> Constr Source # dataTypeOf :: Val a -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Val a)) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Val a)) Source # gmapT :: (forall b. Data b => b -> b) -> Val a -> Val a Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Val a -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Val a -> r Source # gmapQ :: (forall d. Data d => d -> u) -> Val a -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> Val a -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Val a -> m (Val a) Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Val a -> m (Val a) Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Val a -> m (Val a) Source # | |
| Show a => Show (Val a) Source # | |
class ToContext a b where Source #
Minimal complete definition
Instances
| TemplateTarget a => ToContext a Value Source # | |
| TemplateTarget a => ToContext a Bool Source # | |
| TemplateTarget a => ToContext a a Source # | |
| ToContext a a => ToContext a (Doc a) Source # | |
| ToContext a (Context a) Source # | |
| ToContext a (Val a) Source # | |
| ToContext a b => ToContext a [b] Source # | |
| ToContext a b => ToContext a (Map Text b) Source # | |
| TemplateTarget [a] => ToContext [a] [a] Source # | |
class FromContext a b where Source #
The FromContext class provides functions for extracting
values from Val and Context.
Minimal complete definition
Instances
| TemplateTarget a => FromContext a a Source # | |
| TemplateTarget a => FromContext a (Doc a) Source # | |
| TemplateTarget a => FromContext a (Val a) Source # | |
| FromContext a b => FromContext a [b] Source # | |
| TemplateTarget [a] => FromContext [a] [a] Source # | |
A template.
Constructors
| Interpolate Variable | |
| Conditional Variable (Template a) (Template a) | |
| Iterate Variable (Template a) (Template a) | |
| Nested (Template a) | |
| Partial [Pipe] (Template a) | |
| Literal (Doc a) | |
| Concat (Template a) (Template a) | |
| Empty |
Instances
A variable which may have several parts (foo.bar.baz).
Instances
| Monoid Variable Source # | |||||
| Semigroup Variable Source # | |||||
| Data Variable Source # | |||||
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 Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Variable Source # toConstr :: Variable -> Constr Source # dataTypeOf :: Variable -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Variable) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Variable) Source # gmapT :: (forall b. Data b => b -> b) -> Variable -> Variable Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Variable -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Variable -> r Source # gmapQ :: (forall d. Data d => d -> u) -> Variable -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> Variable -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Variable -> m Variable Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Variable -> m Variable Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Variable -> m Variable Source # | |||||
| Generic Variable Source # | |||||
Defined in Text.DocTemplates.Internal Associated Types
| |||||
| Read Variable Source # | |||||
| Show Variable Source # | |||||
| Eq Variable Source # | |||||
| Ord Variable Source # | |||||
Defined in Text.DocTemplates.Internal | |||||
| type Rep Variable Source # | |||||
Defined in Text.DocTemplates.Internal type Rep Variable = D1 ('MetaData "Variable" "Text.DocTemplates.Internal" "doctemplates-0.11.0.1-D1ix9osNqlP9wO3nyCLxCL" 'False) (C1 ('MetaCons "Variable" 'PrefixI 'True) (S1 ('MetaSel ('Just "varParts") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Text]) :*: S1 ('MetaSel ('Just "varPipes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pipe]))) | |||||
Constructors
| ToPairs | |
| ToUppercase | |
| ToLowercase | |
| ToLength | |
| Reverse | |
| FirstItem | |
| LastItem | |
| Rest | |
| AllButLast | |
| Chomp | |
| ToAlpha | |
| ToRoman | |
| NoWrap | |
| Block Alignment Int Border |
Instances
| Data Pipe Source # | |||||
Defined in Text.DocTemplates.Internal Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Pipe -> c Pipe Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Pipe Source # toConstr :: Pipe -> Constr Source # dataTypeOf :: Pipe -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Pipe) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Pipe) Source # gmapT :: (forall b. Data b => b -> b) -> Pipe -> Pipe Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Pipe -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Pipe -> r Source # gmapQ :: (forall d. Data d => d -> u) -> Pipe -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> Pipe -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Pipe -> m Pipe Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Pipe -> m Pipe Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Pipe -> m Pipe Source # | |||||
| Generic Pipe Source # | |||||
Defined in Text.DocTemplates.Internal Associated Types
| |||||
| Read Pipe Source # | |||||
| Show Pipe Source # | |||||
| Eq Pipe Source # | |||||
| Ord Pipe Source # | |||||
Defined in Text.DocTemplates.Internal | |||||
| type Rep Pipe Source # | |||||
Defined in Text.DocTemplates.Internal type Rep Pipe = D1 ('MetaData "Pipe" "Text.DocTemplates.Internal" "doctemplates-0.11.0.1-D1ix9osNqlP9wO3nyCLxCL" 'False) (((C1 ('MetaCons "ToPairs" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ToUppercase" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ToLowercase" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ToLength" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Reverse" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FirstItem" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LastItem" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "Rest" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "AllButLast" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Chomp" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ToAlpha" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ToRoman" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "NoWrap" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Block" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Alignment) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Border))))))) | |||||
Constructors
| LeftAligned | |
| Centered | |
| RightAligned |
Instances
| Data Alignment Source # | |||||
Defined in Text.DocTemplates.Internal Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Alignment -> c Alignment Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Alignment Source # toConstr :: Alignment -> Constr Source # dataTypeOf :: Alignment -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Alignment) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Alignment) Source # gmapT :: (forall b. Data b => b -> b) -> Alignment -> Alignment Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Alignment -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Alignment -> r Source # gmapQ :: (forall d. Data d => d -> u) -> Alignment -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> Alignment -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Alignment -> m Alignment Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Alignment -> m Alignment Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Alignment -> m Alignment Source # | |||||
| Generic Alignment Source # | |||||
Defined in Text.DocTemplates.Internal Associated Types
| |||||
| Read Alignment Source # | |||||
| Show Alignment Source # | |||||
| Eq Alignment Source # | |||||
| Ord Alignment Source # | |||||
Defined in Text.DocTemplates.Internal | |||||
| type Rep Alignment Source # | |||||
Defined in Text.DocTemplates.Internal type Rep Alignment = D1 ('MetaData "Alignment" "Text.DocTemplates.Internal" "doctemplates-0.11.0.1-D1ix9osNqlP9wO3nyCLxCL" 'False) (C1 ('MetaCons "LeftAligned" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Centered" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RightAligned" 'PrefixI 'False) (U1 :: Type -> Type))) | |||||
Constructors
| Border | |
Fields
| |
Instances
| Data Border Source # | |||||
Defined in Text.DocTemplates.Internal Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Border -> c Border Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Border Source # toConstr :: Border -> Constr Source # dataTypeOf :: Border -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Border) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Border) Source # gmapT :: (forall b. Data b => b -> b) -> Border -> Border Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Border -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Border -> r Source # gmapQ :: (forall d. Data d => d -> u) -> Border -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> Border -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Border -> m Border Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Border -> m Border Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Border -> m Border Source # | |||||
| Generic Border Source # | |||||
Defined in Text.DocTemplates.Internal Associated Types
| |||||
| Read Border Source # | |||||
| Show Border Source # | |||||
| Eq Border Source # | |||||
| Ord Border Source # | |||||
| type Rep Border Source # | |||||
Defined in Text.DocTemplates.Internal type Rep Border = D1 ('MetaData "Border" "Text.DocTemplates.Internal" "doctemplates-0.11.0.1-D1ix9osNqlP9wO3nyCLxCL" 'False) (C1 ('MetaCons "Border" 'PrefixI 'True) (S1 ('MetaSel ('Just "borderLeft") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "borderRight") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))) | |||||