This module provides means for reading and applying
Templates are tools to convert data (pages) into a string. They are perfectly suited for laying out your site.
Let's look at an example template:
<html> <head> <title>My crazy homepage - $title$</title> </head> <body> <div id="header"> <h1>My crazy homepage - $title$</h1> </div> <div id="content"> $body$ </div> <div id="footer"> By reading this you agree that I now own your soul </div> </body> </html>
We can use this template to render a
Page which has a body and a
As you can see, the format is very simple --
$key$ is used to render the
$key$ field from the page, everything else is literally copied. If you want
to literally insert
"$key$" into your page (for example, when you're
writing a Hakyll tutorial) you can use
<p> A literal $$key$$. </p>
Because of it's simplicity, these templates can be used for more than HTML: you could make, for example, CSS or JS templates as well.
In addition to the native format, Hakyll also supports hamlet templates. For more information on hamlet templates, please refer to: http://hackage.haskell.org/package/hamlet.
- data Template
- applyTemplate :: Template -> Page String -> Page String
- applySelf :: Page String -> Page String
- templateCompiler :: Compiler Resource Template
- templateCompilerWith :: HamletSettings -> Compiler Resource Template
- applyTemplateCompiler :: Identifier Template -> Compiler (Page String) (Page String)
Datatype used for template substitutions.
$identifiers in the given
Template by values from the given
Page. When a key is not found, it is left as it is. You can specify
the characters used to replace escaped dollars (
Apply a page as it's own template. This is often very useful to fill in
certain keys like
Read a template. If the extension of the file we're compiling is
.hamlet, it will be considered as a Hamlet template, and parsed
templateCompiler that enables custom settings.