blob: b7267e821533ea4a080d8b2fc3490a11941a0381 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
{-# 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
|