Skip to content

Instantly share code, notes, and snippets.

View xkikeg's full-sized avatar

kikeg xkikeg

  • Zürich, Switzerland
  • 20:21 (UTC +02:00)
View GitHub Profile
@xkikeg
xkikeg / mForm.hs
Last active December 18, 2015 11:09
Yesod Book :: Forms :: MForm
{-# LANGUAGE OverloadedStrings, TypeFamilies, QuasiQuotes,
TemplateHaskell, MultiParamTypeClasses #-}
import Yesod
import Control.Applicative
import Data.Text (Text)
data MFormExample = MFormExample
mkYesod "MFormExample" [parseRoutes|
/ RootR GET
@xkikeg
xkikeg / aForm.hs
Created June 13, 2013 14:34
Yesod Book :: Forms :: AForm
{-# LANGUAGE QuasiQuotes, TemplateHaskell, MultiParamTypeClasses,
OverloadedStrings, TypeFamilies #-}
import Yesod
import Yesod.Form.Jquery
import Data.Time (Day)
import Data.Text (Text)
import Control.Applicative ((<$>), (<*>))
data Synopsis = Synopsis
@xkikeg
xkikeg / formsSynopsis.hs
Last active December 18, 2015 11:09
Yesod Book :: Forms :: Synopsis
{-# LANGUAGE QuasiQuotes, TemplateHaskell, MultiParamTypeClasses,
OverloadedStrings, TypeFamilies #-}
import Yesod
import Yesod.Form.Jquery
import Data.Time (Day)
import Data.Text (Text)
import Control.Applicative ((<$>), (<*>))
data Synopsis = Synopsis
@xkikeg
xkikeg / trailingSlashes.hs
Last active December 18, 2015 11:09
Yesod Book :: Yesod Type Class :: trailing slashes
{-# LANGUAGE TypeFamilies, QuasiQuotes, MultiParamTypeClasses, TemplateHaskell, OverloadedStrings #-}
import Yesod
import Network.HTTP.Types (encodePath)
import Blaze.ByteString.Builder.Char.Utf8 (fromText)
import qualified Data.Text as T
import qualified Data.Text.Encoding as TE
import Control.Arrow ((***))
import Data.Monoid (mappend)
data Slash = Slash
@xkikeg
xkikeg / templateText.hs
Created June 13, 2013 13:42
Yesod Book :: Shakespearean Templates :: general text Shakespeare
{-# LANGUAGE QuasiQuotes, OverloadedStrings #-}
import Text.Shakespeare.Text
import qualified Data.Text.Lazy.IO as TLIO
import Data.Text (Text)
import Control.Monad (forM_)
data Item = Item
{ itemName :: Text
, itemQty :: Int
}
@xkikeg
xkikeg / templateI18nMessages.hs
Last active December 18, 2015 11:09
Yesod Book :: Shakespearean Templates :: i18n messages
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE OverloadedStrings #-}
import Data.Text (Text)
import qualified Data.Text as T
import Text.Hamlet (HtmlUrlI18n, ihamlet)
import Text.Blaze.Html (toHtml)
import Text.Blaze.Html.Renderer.String (renderHtml)
data MyRoute = Home | Time | Stylesheet
@xkikeg
xkikeg / template.lucius
Created June 13, 2013 13:31
Yesod Book :: Shakespearean Templates :: external file
foo { bar: baz }
@xkikeg
xkikeg / templateQuasiQuoter.hs
Last active December 18, 2015 11:09
Yesod Book :: Shakespearean Templates :: quasi quoter
{-# LANGUAGE OverloadedStrings #-} -- we're using Text below
{-# LANGUAGE QuasiQuotes #-}
import Text.Hamlet (HtmlUrl, hamlet)
import Data.Text (Text)
import Text.Blaze.Html.Renderer.String (renderHtml)
data MyRoute = Home | Time | Stylesheet
render :: MyRoute -> [(Text, Text)] -> Text
render Home _ = "/home"
@xkikeg
xkikeg / templateLinkAndEmbed.hs
Last active December 18, 2015 11:09
Yesod Book :: Shakespearean Templates :: simple interpolation
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE OverloadedStrings #-}
import Text.Hamlet (HtmlUrl, hamlet)
import Text.Blaze.Html.Renderer.String (renderHtml)
import Data.Text (Text)
data MyRoute = Home
render :: MyRoute -> [(Text, Text)] -> Text
render Home _ = "/home"
@xkikeg
xkikeg / templateInterpolation.hs
Created June 13, 2013 13:20
Yesod Book :: Shakespearean Templates :: simple interpolation
-- Just ignore the quasiquote stuff for now, and that shamlet thing.
-- It will be explained later.
{-# LANGUAGE QuasiQuotes #-}
import Text.Hamlet (shamlet)
import Text.Blaze.Html.Renderer.String (renderHtml)
import Data.Char (toLower)
import Data.List (sort)
data Person = Person
{ name :: String