Templates.hs (894B)
1 {-# LANGUAGE QuasiQuotes #-} 2 {-# LANGUAGE TemplateHaskell #-} 3 4 module Core.Templates ( renderIndex, renderStyle, hxVals ) where 5 6 import Text.Blaze.Html 7 import Text.Blaze.Html.Renderer.Text (renderHtml) 8 import Text.Cassius (cassiusFile, renderCss) 9 import Text.Hamlet (shamletFile) 10 11 import qualified Data.Text as T 12 import qualified Data.Text.Lazy as LT 13 14 import Prelude 15 16 renderIndex :: String -> String -> LT.Text 17 renderIndex link email = renderHtml ( $(shamletFile "./views/index.hamlet") ) 18 where 19 hsUserLink = hxVals "userLink" link 20 21 renderStyle :: LT.Text 22 renderStyle = renderCss ( $(cassiusFile "./views/cassius/style.cassius") "/style.css" ) 23 24 hxVals :: String -> String -> (String, String) 25 hxVals attr str = ("hx-vals", "{\"" <> attr <> "\": \"" <> str <> "\"}")