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

Safe Haskell | None
Language | Haskell98

Text.Hamlet

Contents

- Plain HTML
- Hamlet
- I18N Hamlet
- Type classes
- Internal, for making more
- Used by generated code

Synopsis

- type Html = Markup
- shamlet :: QuasiQuoter
- shamletFile :: FilePath -> Q Exp
- xshamlet :: QuasiQuoter
- xshamletFile :: FilePath -> Q Exp
- type HtmlUrl url = Render url -> Html
- hamlet :: QuasiQuoter
- hamletFile :: FilePath -> Q Exp
- hamletFileReload :: FilePath -> Q Exp
- ihamletFileReload :: FilePath -> Q Exp
- xhamlet :: QuasiQuoter
- xhamletFile :: FilePath -> Q Exp
- type HtmlUrlI18n msg url = Translate msg -> Render url -> Html
- ihamlet :: QuasiQuoter
- ihamletFile :: FilePath -> Q Exp
- class ToAttributes a where
  - toAttributes :: a -> [(Text, Text)]
- data HamletSettings = HamletSettings {
  - hamletDoctype :: String
  - hamletNewlines :: NewlineStyle
  - hamletCloseStyle :: String -> CloseStyle
  - hamletDoctypeNames :: [(String, String)]
  }
- data NewlineStyle
  - = NoNewlines
  - | NewlinesText
  - | AlwaysNewlines
  - | DefaultNewlineStyle
- hamletWithSettings :: Q HamletRules -> HamletSettings -> QuasiQuoter
- hamletFileWithSettings :: Q HamletRules -> HamletSettings -> FilePath -> Q Exp
- defaultHamletSettings :: HamletSettings
- xhtmlHamletSettings :: HamletSettings
- data Env = Env {
  - urlRender :: Maybe ((Exp -> Q Exp) -> Q Exp)
  - msgRender :: Maybe ((Exp -> Q Exp) -> Q Exp)
  }
- data HamletRules = HamletRules {
  - hrFromHtml :: Exp
  - hrWithEnv :: (Env -> Q Exp) -> Q Exp
  - hrEmbed :: Env -> Exp -> Q Exp
  }
- hamletRules :: Q HamletRules
- ihamletRules :: Q HamletRules
- htmlRules :: Q HamletRules
- data CloseStyle
  - = NoClose
  - | CloseInside
  - | CloseSeparate
- condH :: Monad m => [(Bool, m ())] -> Maybe (m ()) -> m ()
- maybeH :: Monad m => Maybe v -> (v -> m ()) -> Maybe (m ()) -> m ()
- asHtmlUrl :: HtmlUrl url -> HtmlUrl url
- attrsToHtml :: [(Text, Text)] -> Html

# Plain HTML

type Html = Markup

shamlet :: QuasiQuoter Source

shamletFile :: FilePath -> Q Exp Source

xshamlet :: QuasiQuoter Source

xshamletFile :: FilePath -> Q Exp Source

# Hamlet

type HtmlUrl url = Render url -> Html Source

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

hamlet :: QuasiQuoter Source

hamletFile :: FilePath -> Q Exp Source

hamletFileReload :: FilePath -> Q Exp Source

ihamletFileReload :: FilePath -> Q Exp Source

xhamlet :: QuasiQuoter Source

xhamletFile :: FilePath -> Q Exp Source

# I18N Hamlet

type HtmlUrlI18n msg url = Translate msg -> Render url -> Html Source

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

ihamlet :: QuasiQuoter Source

ihamletFile :: FilePath -> Q Exp Source

# Type classes

class ToAttributes a where Source

Convert some value to a list of attribute pairs.

Methods

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

Instances

ToAttributes [(String, String)] Source |
ToAttributes [(Text, Text)] Source |
ToAttributes (String, String) Source |
ToAttributes (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

Lift HamletSettings Source |

data NewlineStyle Source

Constructors

NoNewlines | never add newlines
NewlinesText | add newlines between consecutive text lines
AlwaysNewlines | add newlines everywhere
DefaultNewlineStyle |

Instances

Show NewlineStyle Source |
Lift NewlineStyle Source |

hamletWithSettings :: Q HamletRules -> HamletSettings -> QuasiQuoter Source

hamletFileWithSettings :: Q HamletRules -> HamletSettings -> FilePath -> Q Exp Source

defaultHamletSettings :: HamletSettings Source

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

xhtmlHamletSettings :: HamletSettings Source

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

hamletRules :: Q HamletRules Source

ihamletRules :: Q HamletRules Source

htmlRules :: Q HamletRules Source

data CloseStyle Source

Constructors

NoClose |
CloseInside |
CloseSeparate |

Instances

Lift (String -> CloseStyle) Source |

# 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.

asHtmlUrl :: HtmlUrl url -> HtmlUrl url Source

attrsToHtml :: [(Text, Text)] -> Html Source