Add the entry-kind pages and the actual entries to the generated sitemap
This commit is contained in:
parent
b121d461e2
commit
03cd1487fe
1 changed files with 29 additions and 7 deletions
|
@ -11,6 +11,9 @@ import Yesod.Sitemap
|
||||||
|
|
||||||
import Import
|
import Import
|
||||||
|
|
||||||
|
import Entry.Kind ( EntryKind, allEntryKinds )
|
||||||
|
import Widget.Entry ( entryR )
|
||||||
|
|
||||||
-- These handlers embed files in the executable at compile time to avoid a
|
-- These handlers embed files in the executable at compile time to avoid a
|
||||||
-- runtime dependency, and for efficiency.
|
-- runtime dependency, and for efficiency.
|
||||||
|
|
||||||
|
@ -27,10 +30,29 @@ getRobotsR :: Handler Text
|
||||||
getRobotsR = robots SitemapR
|
getRobotsR = robots SitemapR
|
||||||
|
|
||||||
getSitemapR :: Handler TypedContent
|
getSitemapR :: Handler TypedContent
|
||||||
getSitemapR = sitemap $ do
|
getSitemapR = do
|
||||||
|
entries <- runDB $ selectList [] [Desc EntryPublished]
|
||||||
|
sitemap $ do
|
||||||
yield SitemapUrl
|
yield SitemapUrl
|
||||||
{ sitemapLoc = HomeR
|
{ sitemapLoc = HomeR
|
||||||
, sitemapLastMod = Nothing
|
, sitemapLastMod = Nothing
|
||||||
, sitemapChangeFreq = Just Daily
|
, sitemapChangeFreq = Just Daily
|
||||||
, sitemapPriority = Nothing
|
, sitemapPriority = Nothing
|
||||||
}
|
}
|
||||||
|
yieldMany $ kindToSitemapUrl <$> allEntryKinds
|
||||||
|
yieldMany $ entryToSitemapUrl <$> entries
|
||||||
|
|
||||||
|
kindToSitemapUrl :: EntryKind -> SitemapUrl (Route App)
|
||||||
|
kindToSitemapUrl kind = SitemapUrl
|
||||||
|
{ sitemapLoc = EntriesR kind
|
||||||
|
, sitemapLastMod = Nothing
|
||||||
|
, sitemapChangeFreq = Nothing
|
||||||
|
, sitemapPriority = Nothing
|
||||||
|
}
|
||||||
|
entryToSitemapUrl :: Entity Entry -> SitemapUrl (Route App)
|
||||||
|
entryToSitemapUrl entry = SitemapUrl
|
||||||
|
{ sitemapLoc = entryR entry
|
||||||
|
, sitemapLastMod = Just . entryUpdated . entityVal $ entry
|
||||||
|
, sitemapChangeFreq = Nothing
|
||||||
|
, sitemapPriority = Nothing
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue