on master help sign in
Move HTML generation code out of the compiler
516c3feEvan Czaplicki
elm-compiler.cabal−2
@@ -64,7 +64,6 @@ Library
64 Generate.JavaScript.Ports,
64 Generate.JavaScript.Ports,
65 Generate.JavaScript.Variable,
65 Generate.JavaScript.Variable,
66 Generate.Markdown,
66 Generate.Markdown,
67− Generate.Html,
68 Generate.Cases,
67 Generate.Cases,
69 Transform.Canonicalize,
68 Transform.Canonicalize,
70 Transform.Canonicalize.Environment,
69 Transform.Canonicalize.Environment,
@@ -161,7 +160,6 @@ Executable elm-compiler
161 Generate.JavaScript.Ports,
160 Generate.JavaScript.Ports,
162 Generate.JavaScript.Variable,
161 Generate.JavaScript.Variable,
163 Generate.Markdown,
162 Generate.Markdown,
164− Generate.Html,
165 Generate.Cases,
163 Generate.Cases,
166 Transform.Canonicalize,
164 Transform.Canonicalize,
167 Transform.Canonicalize.Environment,
165 Transform.Canonicalize.Environment,
src/Generate/Html.hsdeleted−31
@@ -1,31 +0,0 @@
1−{-# LANGUAGE OverloadedStrings #-}
2−module Generate.Html (generate, JSSource(..)) where
3−
4−import Text.Blaze (preEscapedToMarkup)
5−import qualified Text.Blaze.Html5 as H
6−import Text.Blaze.Html5 ((!))
7−import qualified Text.Blaze.Html5.Attributes as A
8−import qualified Data.ByteString.Lazy.Char8 as BS
9−
10−data JSSource = Link String | Source BS.ByteString
11−
12−makeScript :: JSSource -> H.Html
13−makeScript source =
14− case source of
15− Link src -> H.script ! A.type_ "text/javascript" ! A.src (H.toValue src) $ ""
16− Source src ->
17− H.script ! A.type_ "text/javascript" $
18− preEscapedToMarkup $ BS.unpack src
19−
20−generate :: JSSource -> String -> [JSSource] -> String -> String -> H.Html
21−generate runtime title scripts moduleName noscript =
22− H.docTypeHtml $ do
23− H.head $ do
24− H.meta ! A.charset "UTF-8"
25− H.title . H.toHtml $ title
26− makeScript runtime
27− mapM_ makeScript scripts
28− H.body $ do
29− H.script ! A.type_ "text/javascript" $
30− preEscapedToMarkup ("Elm.fullscreen(Elm." ++ moduleName ++ ")")
31− H.noscript $ preEscapedToMarkup noscript