diff options
Diffstat (limited to 'src/View/Page.hs')
-rw-r--r-- | src/View/Page.hs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/View/Page.hs b/src/View/Page.hs new file mode 100644 index 0000000..b7267e8 --- /dev/null +++ b/src/View/Page.hs @@ -0,0 +1,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 |