packages feed

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
@@ -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