A parsed Hamlet template. See parseHamletTemplate and readHamletTemplateFile.
Moduleshakespeare-2.1.0.1Haskell2010
Text.Hamlet.Runtime
Module for parsing and rendering Hamlet templates at runtime, not compile time. This uses the same Hamlet parsing as compile-time Hamlet, but has some limitations, such as:
No compile-time checking of validity
Can't apply functions at runtime
No URL rendering
{-# LANGUAGE OverloadedStrings #-}
import Text.Hamlet.Runtime
import qualified Data.Map as Map
import Text.Blaze.Html.Renderer.String (renderHtml)
main :: IO ()
main = do
template <- parseHamletTemplate defaultHamletSettings $ unlines
[ "<p>Hello, #{name}"
, "$if hungry"
, " <p>Available food:"
, " <ul>"
, " $forall food <- foods"
, " <li>#{food}"
]
let hamletDataMap = Map.fromList
[ ("name", "Michael")
, ("hungry", toHamletData True) -- always True
, ("foods", toHamletData
[ "Apples"
, "Bananas"
, "Carrots"
])
]
html <- renderHamletTemplate template hamletDataMap
putStrLn $ renderHtml html- 3 types
- 1 class
- 4 values
- Packageshakespeare-2.1.0.1
- Exports8
- LanguageHaskell2010
- LicenceMIT
- SourceRuntime.hs
Settings for parsing of a hamlet document.
Instances1Lift
Lift HamletSettingsDefined in shakespeare-2.1.0.1 · Text.Hamlet.Parse
Defaults settings: HTML5 doctype and HTML-style empty tags.
A piece of data that can be embedded and passed to a Hamlet template (via renderHamletTemplate).
This supplies an IsString instance, so with OverloadedStrings it will
support literal strings, which are converted to HTML via toHtml. For other
datatypes, use toHamletData.
Instances2IsString, ToHamletData
IsString HamletDataDefined in shakespeare-2.1.0.1 · Text.Hamlet.RuntimeToHamletData HamletDataDefined in shakespeare-2.1.0.1 · Text.Hamlet.Runtime
Data which can be passed to a Hamlet template.
Methods
toHamletData :: a -> HamletData
Instances6ToHamletData
ToHamletData HtmlDefined in shakespeare-2.1.0.1 · Text.Hamlet.RuntimeToHamletData BoolDefined in shakespeare-2.1.0.1 · Text.Hamlet.RuntimeToHamletData HamletDataDefined in shakespeare-2.1.0.1 · Text.Hamlet.RuntimeToHamletData TextDefined in shakespeare-2.1.0.1 · Text.Hamlet.Runtimea ~ HamletData => ToHamletData (Maybe a)Defined in shakespeare-2.1.0.1 · Text.Hamlet.Runtimea ~ HamletData => ToHamletData [a]Defined in shakespeare-2.1.0.1 · Text.Hamlet.Runtime
Parse an in-memory Hamlet template. This operation may fail if the template is not parsable.
Same as parseHamletTemplate, but reads from a file. The file is assumed to be UTF-8 encoded (same assumption as compile-time Hamlet).