yesod-sitemap 0.1.0 → 0.2.1
raw patch · 3 files changed
+90/−89 lines, 3 filesdep ~hamletdep ~yesod-corePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: hamlet, yesod-core
API changes (from Hackage documentation)
- Yesod.Helpers.Sitemap: Always :: SitemapChangeFreq
- Yesod.Helpers.Sitemap: Daily :: SitemapChangeFreq
- Yesod.Helpers.Sitemap: Hourly :: SitemapChangeFreq
- Yesod.Helpers.Sitemap: Monthly :: SitemapChangeFreq
- Yesod.Helpers.Sitemap: Never :: SitemapChangeFreq
- Yesod.Helpers.Sitemap: SitemapUrl :: url -> UTCTime -> SitemapChangeFreq -> Double -> SitemapUrl url
- Yesod.Helpers.Sitemap: Weekly :: SitemapChangeFreq
- Yesod.Helpers.Sitemap: Yearly :: SitemapChangeFreq
- Yesod.Helpers.Sitemap: data SitemapChangeFreq
- Yesod.Helpers.Sitemap: data SitemapUrl url
- Yesod.Helpers.Sitemap: priority :: SitemapUrl url -> Double
- Yesod.Helpers.Sitemap: robots :: Route master -> GHandler sub master RepPlain
- Yesod.Helpers.Sitemap: sitemap :: [SitemapUrl (Route master)] -> GHandler sub master RepXml
- Yesod.Helpers.Sitemap: sitemapChangeFreq :: SitemapUrl url -> SitemapChangeFreq
- Yesod.Helpers.Sitemap: sitemapLastMod :: SitemapUrl url -> UTCTime
- Yesod.Helpers.Sitemap: sitemapLoc :: SitemapUrl url -> url
+ Yesod.Sitemap: Always :: SitemapChangeFreq
+ Yesod.Sitemap: Daily :: SitemapChangeFreq
+ Yesod.Sitemap: Hourly :: SitemapChangeFreq
+ Yesod.Sitemap: Monthly :: SitemapChangeFreq
+ Yesod.Sitemap: Never :: SitemapChangeFreq
+ Yesod.Sitemap: SitemapUrl :: url -> UTCTime -> SitemapChangeFreq -> Double -> SitemapUrl url
+ Yesod.Sitemap: Weekly :: SitemapChangeFreq
+ Yesod.Sitemap: Yearly :: SitemapChangeFreq
+ Yesod.Sitemap: data SitemapChangeFreq
+ Yesod.Sitemap: data SitemapUrl url
+ Yesod.Sitemap: priority :: SitemapUrl url -> Double
+ Yesod.Sitemap: robots :: Route master -> GHandler sub master RepPlain
+ Yesod.Sitemap: sitemap :: [SitemapUrl (Route master)] -> GHandler sub master RepXml
+ Yesod.Sitemap: sitemapChangeFreq :: SitemapUrl url -> SitemapChangeFreq
+ Yesod.Sitemap: sitemapLastMod :: SitemapUrl url -> UTCTime
+ Yesod.Sitemap: sitemapLoc :: SitemapUrl url -> url
Files
- Yesod/Helpers/Sitemap.hs +0/−83
- Yesod/Sitemap.hs +83/−0
- yesod-sitemap.cabal +7/−6
− Yesod/Helpers/Sitemap.hs
@@ -1,83 +0,0 @@-{-# LANGUAGE QuasiQuotes #-}-{-# LANGUAGE CPP #-}-{-# LANGUAGE OverloadedStrings #-}---------------------------------------------------------------- Module : Yesod.Helpers.Sitemap--- Copyright : Michael Snoyman--- License : BSD3------ Maintainer : Michael Snoyman <michael@snoyman.com>--- Stability : Stable--- Portability : portable------ Generating Google sitemap files.----------------------------------------------------------------- | Generates XML sitemap files.------ See <http://www.sitemaps.org/>.-module Yesod.Helpers.Sitemap- ( sitemap- , robots- , SitemapUrl (..)- , SitemapChangeFreq (..)- ) where--import Yesod.Content (RepXml (..), RepPlain (..), toContent, formatW3)-import Yesod.Handler (Route, GHandler, getUrlRender)-import Yesod.Handler (hamletToContent)-import Text.Hamlet (Hamlet, xhamlet)-import Data.Time (UTCTime)-import Data.Monoid (mappend)--data SitemapChangeFreq = Always- | Hourly- | Daily- | Weekly- | Monthly- | Yearly- | Never--showFreq :: SitemapChangeFreq -> String-showFreq Always = "always"-showFreq Hourly = "hourly"-showFreq Daily = "daily"-showFreq Weekly = "weekly"-showFreq Monthly = "monthly"-showFreq Yearly = "yearly"-showFreq Never = "never"--data SitemapUrl url = SitemapUrl- { sitemapLoc :: url- , sitemapLastMod :: UTCTime- , sitemapChangeFreq :: SitemapChangeFreq- , priority :: Double- }--template :: [SitemapUrl url] -> Hamlet url-template urls =-#if __GLASGOW_HASKELL__ >= 700- [xhamlet|-#else- [$xhamlet|-#endif-<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">- $forall url <- urls- <url>- <loc>@{sitemapLoc url}- <lastmod>#{formatW3 (sitemapLastMod url)}- <changefreq>#{showFreq (sitemapChangeFreq url)}- <priority>#{show (priority url)}-|]--sitemap :: [SitemapUrl (Route master)] -> GHandler sub master RepXml-sitemap = fmap RepXml . hamletToContent . template---- | A basic robots file which just lists the "Sitemap: " line.-robots :: Route master -- ^ sitemap url- -> GHandler sub master RepPlain-robots smurl = do- render <- getUrlRender- return $ RepPlain $ toContent $ "Sitemap: " `mappend` render smurl
+ Yesod/Sitemap.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE CPP #-}+{-# LANGUAGE OverloadedStrings #-}+---------------------------------------------------------+--+-- Module : Yesod.Sitemap+-- Copyright : Michael Snoyman+-- License : BSD3+--+-- Maintainer : Michael Snoyman <michael@snoyman.com>+-- Stability : Stable+-- Portability : portable+--+-- Generating Google sitemap files.+--+---------------------------------------------------------++-- | Generates XML sitemap files.+--+-- See <http://www.sitemaps.org/>.+module Yesod.Sitemap+ ( sitemap+ , robots+ , SitemapUrl (..)+ , SitemapChangeFreq (..)+ ) where++import Yesod.Content (RepXml (..), RepPlain (..), toContent, formatW3)+import Yesod.Handler (Route, GHandler, getUrlRender)+import Yesod.Handler (hamletToContent)+import Text.Hamlet (HtmlUrl, xhamlet)+import Data.Time (UTCTime)+import Data.Monoid (mappend)++data SitemapChangeFreq = Always+ | Hourly+ | Daily+ | Weekly+ | Monthly+ | Yearly+ | Never++showFreq :: SitemapChangeFreq -> String+showFreq Always = "always"+showFreq Hourly = "hourly"+showFreq Daily = "daily"+showFreq Weekly = "weekly"+showFreq Monthly = "monthly"+showFreq Yearly = "yearly"+showFreq Never = "never"++data SitemapUrl url = SitemapUrl+ { sitemapLoc :: url+ , sitemapLastMod :: UTCTime+ , sitemapChangeFreq :: SitemapChangeFreq+ , priority :: Double+ }++template :: [SitemapUrl url] -> HtmlUrl url+template urls =+#if __GLASGOW_HASKELL__ >= 700+ [xhamlet|+#else+ [$xhamlet|+#endif+<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">+ $forall url <- urls+ <url>+ <loc>@{sitemapLoc url}+ <lastmod>#{formatW3 (sitemapLastMod url)}+ <changefreq>#{showFreq (sitemapChangeFreq url)}+ <priority>#{show (priority url)}+|]++sitemap :: [SitemapUrl (Route master)] -> GHandler sub master RepXml+sitemap = fmap RepXml . hamletToContent . template++-- | A basic robots file which just lists the "Sitemap: " line.+robots :: Route master -- ^ sitemap url+ -> GHandler sub master RepPlain+robots smurl = do+ render <- getUrlRender+ return $ RepPlain $ toContent $ "Sitemap: " `mappend` render smurl
yesod-sitemap.cabal view
@@ -1,5 +1,5 @@ name: yesod-sitemap-version: 0.1.0+version: 0.2.1 license: BSD3 license-file: LICENSE author: Michael Snoyman <michael@snoyman.com>@@ -9,16 +9,17 @@ stability: Stable cabal-version: >= 1.6 build-type: Simple-homepage: http://docs.yesodweb.com/+homepage: http://www.yesodweb.com/+description: Generate XML sitemaps. library build-depends: base >= 4 && < 5- , yesod-core >= 0.8 && < 0.9+ , yesod-core >= 0.9 && < 0.10 , time >= 1.1.4 && < 1.3- , hamlet >= 0.8 && < 0.9- exposed-modules: Yesod.Helpers.Sitemap+ , hamlet >= 0.10 && < 0.11+ exposed-modules: Yesod.Sitemap ghc-options: -Wall source-repository head type: git- location: git://github.com/snoyberg/yesod-sitemap.git+ location: git://github.com/yesodweb/yesod.git