Bir site haritası dosyası oluşturmak için yesod-siteemap kullanan bir getSitemapR
işleyici yazıyorum. Yaşadığım sorun, Data.Time.Clock
'da tanımlandığı gibi String
'u UTCTime
'a dönüştürmektir. Mezgitname belgelerine göre, UTCTime
, Read
tipinin bir örneğidir, yani denediğim şey budur. İşte benim kodum. "Ben terimi 'Haskell ile google arama yaptık,Bir dize UTCTime dönüştürmek
module Handler.Root where
import Import
import Yesod.Goodies.Gravatar
import Data.Time.Format
import System.Locale
-- This is a handler function for the GET request method on the RootR
-- resource pattern. All of your resource patterns are defined in
-- config/routes
--
-- The majority of the code you will write in Yesod lives in these handler
-- functions. You can spread them across multiple files if you are so
-- inclined, or create a single monolithic file.
getRootR :: Handler RepHtml
getRootR = do
defaultLayout $ do
h2id <- lift newIdent
setTitle "Cloudrr homepage"
$(widgetFile "homepage")
gravatar :: Text -> String
gravatar email =
gravatarImg email go
where
go = GravatarOptions {
gSize = Just (Size 140)
, gDefault = Just (Identicon)
, gForceDefault = ForceDefault False
, gRating = Just (PG)
}
getSitemapR :: Handler RepXml
getSitemapR = do
sitemap [smo RootR]
where
smo = SitemapUrl SitemapR{
sitemapLoc = "http://www.cloudrr.me/sitemap.xml"
, sitemapLastMod = (read "2011-11-19 18:28:r52.607875 UTC")::UTCTime
, sitemapChangeFreq = Weekly
, priority = 0.7
}
Ben sistemleri programlama bölüm 20'de Gerçek Dünya Haskell benim kopya inceledim ama kod örnekleri var o UTCTime
kapsamaz Sonuçsız bir Dize UTCTime "'dönüştürün. SitemapLastMod
bir Maybe UTCTime
almaz çünkü çalışmayan haskell-cafe posta listesinde aşağıdaki Thread bulundu. Burada gerçekten aptalca bir hata yaptığımı düşünüyorum, ama emin değilim, birisi bana doğru yönde işaret edebilir mi?
Zaman ayırdığınız ve düşündüğünüz için teşekkür ederiz.
Nereye takıldığını açıkça söyleyebilir misin? – Tarrasch