shakespeare-2.0.0.3: A toolkit for making compile-time interpolated templates

Safe HaskellNone

Text.Hamlet

Contents

Synopsis

Plain HTML

type Html = Markup

Hamlet

type HtmlUrl url = Render url -> HtmlSource

A function generating an Html given a URL-rendering function.

I18N Hamlet

type HtmlUrlI18n msg url = Translate msg -> Render url -> HtmlSource

A function generating an Html given a message translator and a URL rendering function.

Type classes

class ToAttributes a whereSource

Convert some value to a list of attribute pairs.

Methods

toAttributes :: a -> [(Text, Text)]Source

Internal, for making more

data HamletSettings Source

Settings for parsing of a hamlet document.

Constructors

HamletSettings 

Fields

hamletDoctype :: String

The value to replace a "!!!" with. Do not include the trailing newline.

hamletNewlines :: NewlineStyle

Should we add newlines to the output, making it more human-readable? Useful for client-side debugging but may alter browser page layout.

hamletCloseStyle :: String -> CloseStyle

How a tag should be closed. Use this to switch between HTML, XHTML or even XML output.

hamletDoctypeNames :: [(String, String)]

Mapping from short names in "$doctype" statements to full doctype.

Instances

data NewlineStyle Source

Constructors

NoNewlines

never add newlines

NewlinesText

add newlines between consecutive text lines

AlwaysNewlines

add newlines everywhere

DefaultNewlineStyle 

defaultHamletSettings :: HamletSettingsSource

Defaults settings: HTML5 doctype and HTML-style empty tags.

data Env Source

Constructors

Env 

Fields

urlRender :: Maybe ((Exp -> Q Exp) -> Q Exp)
 
msgRender :: Maybe ((Exp -> Q Exp) -> Q Exp)
 

data HamletRules Source

Constructors

HamletRules 

Fields

hrFromHtml :: Exp
 
hrWithEnv :: (Env -> Q Exp) -> Q Exp
 
hrEmbed :: Env -> Exp -> Q Exp
 

Used by generated code

condH :: Monad m => [(Bool, m ())] -> Maybe (m ()) -> m ()Source

Checks for truth in the left value in each pair in the first argument. If a true exists, then the corresponding right action is performed. Only the first is performed. In there are no true values, then the second argument is performed, if supplied.

maybeH :: Monad m => Maybe v -> (v -> m ()) -> Maybe (m ()) -> m ()Source

Runs the second argument with the value in the first, if available. Otherwise, runs the third argument, if available.