-- | a module containing orphan shakespeare instances to make writing templates -- a bit more fun & less of a hassle. module Yesod.Orphans where import Data.Text (Text) import qualified Data.Text as T import Data.Time (UTCTime) import Data.Time.Calendar (Day) import Data.Time.Format.ISO8601 (iso8601Show) import Data.UUID (UUID) import qualified Data.UUID as UUID import Fmt ((+|), (|+)) import GTFS import Persist import Text.Blaze.Html (ToMarkup (..)) import Text.Shakespeare.Text import Yesod --- some orphans to make hamlet easier to deal with instance ToMarkup Time where toMarkup time = toMarkup (show time) instance ToMarkup Day where toMarkup day = toMarkup (iso8601Show day) instance ToMessage UTCTime where toMessage = formatW3 instance ToMessage Token where toMessage (Token uuid) = UUID.toText uuid instance ToMarkup UTCTime where toMarkup = toMarkup . formatW3 instance ToMarkup Token where toMarkup (Token uuid) = toMarkup (UUID.toText uuid) instance ToMessage Double where toMessage = T.pack . show instance ToMarkup Seconds where toMarkup (Seconds s) = if s > 0 then toMarkup ("+"+|s `div` 60|+"" :: Text) else toMarkup (s `div` 60)