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 Template
Text.Mustache
to create
s and FileTemplate
s.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 compileMustacheText
fileNameTemplate
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