{-# LANGUAGE OverloadedStrings #-} module View.Page ( renderPage ) where import Data.Text.Internal.Lazy import Data.String (fromString) import Text.Blaze.Html import Text.Blaze.Html5 import Text.Blaze.Html5.Attributes import qualified Text.Blaze.Html5 as H import Text.Blaze.Html.Renderer.Text (renderHtml) import qualified Model as M import qualified Model.Identity as I renderPage :: M.Model -> Html -> Text renderPage model page = renderHtml $ do docTypeHtml $ do H.head $ do H.title $ fromString . I.name . M.identity $ model meta ! charset "UTF-8" meta ! name "viewport" ! content "width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" meta ! name "author" ! content (toValue $ I.name . M.identity $ model) meta ! name "description" ! content (toValue $ M.description model) link ! rel "stylesheet" ! type_ "text/css" ! href "/stylesheets/reset.css" link ! rel "stylesheet" ! href "/stylesheets/font-awesome-4.2.0/css/font-awesome.min.css" link ! rel "stylesheet" ! type_ "text/css" ! href "/design" link ! rel "icon" ! type_ "image/png" ! href "/images/icon.png" H.body page