hamletgives QuasiQuoters that are evaluated in expressions blaze. Using Text.Blaze.Html.Renderer.String.renderHtml, you can display them in a row.
Let's start with a simple example other than HTML:
{-
import Text.Blaze.Html.Renderer.String (renderHtml)
import Text.Hamlet
greet name = [shamlet|Hello world
-- This prints "Hello world John Foo"
main = putStrLn $ renderHtml $ greet "John Foo"
You can also use TextinsteadString Text.Blaze.Html.Renderer.Text.renderHtml
Haskell. , , writeFile putStrLn.
main = do writeFile "greet.txt" $ renderHtml $ greet "John Foo"
HTML . . .
{-
import Text.Blaze.Html.Renderer.String (renderHtml)
import Text.Hamlet
greet name = [shamlet|
$doctype 5
<html>
<head>
<title>Greeting for
<body>
<h2>
Hello world
main = writeFile "greet.html" $ renderHtml $ greet "John Foo"
greet.html HTML-.