Хотя есть много вариантов, мой любимый вариант будет Heist
, который позволит вам определить splice
:
> factSplice :: (Monad m) => TemplateMonad m Template
> factSplice = do
> input <- getParamNode
> let text = T.unpack $ X.nodeText input
> n = read text :: Int
> return [X.TextNode $ T.pack $ show $ product [1..n]]
>
, который можно использовать в динамическом (загруженном во время выполнения) HTML
шаблоне:
<html>
<head>
<title>Factorial Page</title>
</head>
<body>
<h1>Factorial Page</h1>
<p>The factorial of 6 is <fact>6</fact></p>
</body>
</html>
Чтобы использовать heist
в happstack
, вам понадобится пакет happstack-heist . Для получения более подробной информации и других параметров, см. Использование Heist .