@@ -10,36 +10,27 @@ import Text.Julius
11data ElmTest = ElmTest
11data ElmTest = ElmTest
13−-- our Elm code
13+-- embedding an external elm file (note: no spaces!)
14−mousePage = [elm|
14+mousePage = [elmFile|elm_source/mouse.elm|]
15−niceBlue = rgb 0 (1/3) (2/3)
16−clearGreen = rgba (1/9) (8/9) (3/9) (1/2)
19− collage w h [ filled niceBlue . rotate ((x+y)/1000) $ ngon 4 100 (200,200)
20− , filled clearGreen $ ngon 5 30 (x,y)
23−main = lift2 scene Mouse.position Window.dimensions
16+-- embedding elm code in our Haskell file
26rootPage = [elm|
17rootPage = [elm|
27main = plainText "Welcome!"
18main = plainText "Welcome!"
30-- our Yesod App
21-- our Yesod App
32mkYesod "ElmTest" [parseRoutes|
22mkYesod "ElmTest" [parseRoutes|
33/ RootR GET
23/ RootR GET
34/mouse MouseR GET
24/mouse MouseR GET
27+-- generateWidget is called with the result of an Elm QuasiQuoter (which is just a
28+-- string containing some Elm code, with proper newline escaping)
37getMouseR :: Handler RepHtml
29getMouseR :: Handler RepHtml
38getMouseR = defaultLayout $ do
30getMouseR = defaultLayout $ do
39 setTitle "Mouse position demo"
31 setTitle "Mouse position demo"
40 generateWidget mousePage
32 generateWidget mousePage
43getRootR :: Handler RepHtml
34getRootR :: Handler RepHtml
44getRootR = defaultLayout $ do
35getRootR = defaultLayout $ do
45 setTitle "Welcome!"
36 setTitle "Welcome!"