1
我想在html頁面中發佈一個curl命令的結果, 在haskell中使用yesod框架。 這是我的代碼至今:如何使用yesod在html頁面上顯示捲曲結果?
{-# LANGUAGE TypeFamilies, QuasiQuotes, MultiParamTypeClasses,
TemplateHaskell, OverloadedStrings #-}
import Yesod
import Network.Curl
import Text.Blaze hiding (toMarkup)
data HelloWorld = HelloWorld
mkYesod "HelloWorld" [parseRoutes|
/HomeR GET
|]
url = "http://www.google.com/"
opts = [CurlFollowLocation True]
res=withCurlDo $ do
curlGet url opts
return()
instance ToMarkup (IO a) where
toMarkup a = a
instance Yesod HelloWorld
getHomeR :: Handler RepHtml
getHomeR = defaultLayout [whamlet|#{toMarkup res}|]
main :: IO()
main = warpDebug 3000 HelloWorld
此代碼啓動服務器警告
Warning: No explicit method nor default method for `Text.Blaze.toMarkup'
In the instance declaration for `ToMarkup (IO a)'
和指向網頁瀏覽器
http://localhost:3000
它給「內部服務器錯誤「作爲HTML頁面沿着上述警告消息。
我對Haskell和Yesod相當陌生......有人可以幫忙嗎?
謝謝盧克......這非常有幫助! – sudoking 2013-03-13 06:29:10