此代码在0.10.0更改之前使用Heist
main = do
Right ts <- loadTemplates "templates" $
bindSplices mySplices defaultHeistState
etc..
现在我收到了错误
testdb.hs:59:33: Not in scope: `defaultHeistState'
我知道loadTemplates的类型签名已更改为
loadTemplates :: FilePath -> EitherT [String] IO TemplateRepoSource
但是我无法弄清楚如何调整旧代码以使其正常工作。
答案 0 :(得分:1)
好的我已经得到了它,但我可以采用更优雅的方式来做到这一点
load baseDir splices = do
tmap <- runEitherT $ do
templates <- loadTemplates baseDir
let hc = HeistConfig mySplices [] [] [] templates
initHeist hc
either (error . concat) return tmap
main = do
ts <- load "templates" $ bindSplices mySplices
renderWithArgs [("test", T.pack "hello world")] ts "index" >>=
B.putStr . maybe "Page not found" (toByteString . fst)