on f20fa4e help sign in
38 lines 1.2 kB history raw
1{-# LANGUAGE OverloadedStrings #-}
2module Generate.Html
3 (createHtml,
4 JSSource (..)
5 ) where
7import Text.Blaze (preEscapedToMarkup)
8import qualified Text.Blaze.Html5 as H
9import Text.Blaze.Html5 ((!))
10import qualified Text.Blaze.Html5.Attributes as A
11import qualified Data.ByteString.Lazy.Char8 as BS
13import Initialize (buildFromSource)
14import Generate.JavaScript
15import Generate.Noscript
17data JSSource = Link String | Source BS.ByteString
19makeScript :: JSSource -> H.Html
20makeScript source =
21 case source of
22 Link src -> H.script ! A.type_ "text/javascript" ! A.src (H.toValue src) $ ""
23 Source src ->
24 H.script ! A.type_ "text/javascript" $
25 preEscapedToMarkup $ BS.unpack src
27createHtml :: FilePath -> String -> [JSSource] -> String -> String -> H.Html
28createHtml libLoc title scripts moduleName noscript =
29 H.docTypeHtml $ do
30 H.head $ do
31 H.meta ! A.charset "UTF-8"
32 H.title . H.toHtml $ title
33 makeScript (Link libLoc)
34 mapM_ makeScript scripts
35 H.body $ do
36 H.script ! A.type_ "text/javascript" $
37 preEscapedToMarkup ("Elm.fullscreen(Elm." ++ moduleName ++ ")")
38 H.noscript $ preEscapedToMarkup noscript