| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
ProjectForge.Compile
Description
Functions for compiling Project and File Templates
Synopsis
- compileFileTemplate :: MonadIO m => (FilePath, Text) -> m FileTemplate
- compileProjectTemplate :: MonadIO m => [(FilePath, Text)] -> m ProjectTemplate
- module Text.Mustache.Type
Compiling project templates
Template compilation marshals Data.Text.Text into s.
The utilities here extend the utilities provided by TemplateText.Mustache
to create s and FileTemplates.ProjectTemplate
compileFileTemplate :: MonadIO m => (FilePath, Text) -> m FileTemplate Source #
Create a from a FileTemplate(FilePath, Text) pair.
Both the FilePath and Text may contain mustache variables.
This function returns an error (within ) in the case that
MonadIO fails to compile
either the compileMustacheTextfileNameTemplate or fileContentsTemplate.
For example, the following code:
compileFileTemplate ("{{prjId}}.md", "{{prjId}}")
produces the following template:
MkFileTemplate
{ fileNameTemplate = Template
{ templateActual = PName
{ unPName = Filename }
, templateCache = fromList
[
( PName
{ unPName = Filename }
,
[ EscapedVar
( Key
{ unKey = [ "prjId" ] }
)
, TextBlock ".md"
]
)
]
}
, fileContentsTemplate = Template
{ templateActual = PName
{ unPName = Contents }
, templateCache = fromList
[
( PName
{ unPName = Contents }
,
[ EscapedVar
( Key
{ unKey = [ "prjId" ] }
)
]
)
]
}
}
compileProjectTemplate :: MonadIO m => [(FilePath, Text)] -> m ProjectTemplate Source #
Generate all s for a FileTemplate.ProjectTemplate
Re-exports
module Text.Mustache.Type