Haskell вызывает HTML, используя Шекспира без виджетов Yesod - PullRequest
1 голос
/ 26 сентября 2019

Как и Йесод, так что погружайся глубоко.У меня есть вопрос: используя Yesod, я могу позвонить, например.тип данных App с Warp (warp 3000 App).Как я могу обслуживать HTML, созданный с помощью шаблонов Шекспира (как показано ниже).Получил это из книги Майкла Сноймана.

{-# LANGUAGE OverloadedStrings         #-}
{-# LANGUAGE TypeFamilies              #-}
{-# LANGUAGE QuasiQuotes               #-}
{-# LANGUAGE TemplateHaskell           #-}
module Main where

import Text.Blaze.Html.Renderer.String (renderHtml) 
import Text.Hamlet (HtmlUrl, hamlet) 
import Data.Text (Text) 
import Yesod

data WebRoutes = Home | Time | Stylesheet

render :: WebRoutes -> [(Text, Text)] -> Text 
render Home _       = "/home"
render Time _       = "/time" 
render Stylesheet _ = "/stylesheet" 

template :: Text -> HtmlUrl WebRoutes 
template title = [hamlet|
<html>
  <head> 
    <title>#{varTitle} 
    <link rel=stylesheet href=@{Stylesheet}>
  <body>
    <h1 #headerId>#{title}
|]
varTitle :: String 
varTitle = "Test outputd" 

main :: IO ()
main = putStrLn $ renderHtml $ template "Test output" render
...