dimanche 31 août 2014

Snap render list in Hamlet


Vote count:

0




Given this little project I'm using to learn Haskell, I would like to move my request handler's code generation to a Hamlet template, but am unsure how to pass things around.


My current code generates the following error when lines are uncommented, which is the first blocker:



Couldn't match expected type String -> String' with actual typeString' In the return type of a call of renderHtml' Probable cause:renderHtml' is applied to too many arguments In the expression: renderHtml ($ (shamletFile "fileList.hamlet")) In an equation for `myTemplate': myTemplate = renderHtml ($ (shamletFile "fileList.hamlet"))



Code:



site :: Snap ()
site =
ifTop (writeBS "hello world") <|>
route [ ("foo", writeBS "ba"),
("view_root_json_files", listRootFilesHandler)
] <|>
dir "static" (serveDirectory ".")

--myTemplate :: String -> String
--myTemplate = renderHtml ( $(shamletFile "fileList.hamlet") )

toText :: [FilePath] -> Text
toText = foldMap (flip snoc '\n' . pack)

listRootFilesHandler :: Snap ()
listRootFilesHandler = do
filenames <- liftIO $ getDirectoryContents "data"
let filtered_filenames = filter (not . isPrefixOf ".") filenames
writeText $ toText filtered_filenames


asked 46 secs ago







Snap render list in Hamlet

Aucun commentaire:

Enregistrer un commentaire