aboutsummaryrefslogtreecommitdiff
path: root/src/View/Page.hs
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