Main.hs 947 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. {-# LANGUAGE MultiParamTypeClasses #-}
  2. {-# LANGUAGE QuasiQuotes #-}
  3. {-# LANGUAGE TemplateHaskell #-}
  4. {-# LANGUAGE TypeFamilies #-}
  5. module Main where
  6. import Control.Applicative ((<$>))
  7. import Wiki
  8. import Yesod
  9. -- A very simple App, doesn't do anything except provide the Wiki.
  10. data App = App
  11. { appWiki :: Wiki
  12. }
  13. mkYesod "App" [parseRoutes|
  14. / HomeR GET
  15. /wiki WikiR Wiki appWiki
  16. |]
  17. instance Yesod App
  18. instance YesodWiki App -- Just use the defaults
  19. instance RenderMessage App FormMessage where
  20. renderMessage _ _ = defaultFormMessage
  21. getHomeR :: Handler Html
  22. getHomeR = defaultLayout
  23. [whamlet|
  24. <p>
  25. Welcome to my test application.
  26. The application is pretty boring.
  27. You probably want to go to
  28. <a href=@{WikiR WikiHomeR}>the wiki#
  29. .
  30. |]
  31. main :: IO ()
  32. main = do
  33. app <- App <$> newWiki
  34. warp 3000 app