yesod-sitemap 0.0.0.1 → 0.1.0
raw patch · 4 files changed
+139/−137 lines, 4 filesdep ~hamletdep ~yesod-coresetup-changedPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: hamlet, yesod-core
API changes (from Hackage documentation)
Files
- LICENSE +25/−25
- Setup.lhs +7/−7
- Yesod/Helpers/Sitemap.hs +83/−81
- yesod-sitemap.cabal +24/−24
LICENSE view
@@ -1,25 +1,25 @@-The following license covers this documentation, and the source code, except -where otherwise indicated. - -Copyright 2010, Michael Snoyman. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS "AS IS" AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, -OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +The following license covers this documentation, and the source code, except+where otherwise indicated.++Copyright 2010, Michael Snoyman. All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++* Redistributions of source code must retain the above copyright notice, this+ list of conditions and the following disclaimer.++* Redistributions in binary form must reproduce the above copyright notice,+ this list of conditions and the following disclaimer in the documentation+ and/or other materials provided with the distribution.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS "AS IS" AND ANY EXPRESS OR+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO+EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,+OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Setup.lhs view
@@ -1,7 +1,7 @@-#!/usr/bin/env runhaskell - -> module Main where -> import Distribution.Simple - -> main :: IO () -> main = defaultMain +#!/usr/bin/env runhaskell++> module Main where+> import Distribution.Simple++> main :: IO ()+> main = defaultMain
Yesod/Helpers/Sitemap.hs view
@@ -1,81 +1,83 @@-{-# LANGUAGE QuasiQuotes #-} -{-# LANGUAGE CPP #-} ---------------------------------------------------------- --- --- 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) - -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: " ++ render smurl +{-# 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.cabal view
@@ -1,24 +1,24 @@-name: yesod-sitemap -version: 0.0.0.1 -license: BSD3 -license-file: LICENSE -author: Michael Snoyman <michael@snoyman.com> -maintainer: Michael Snoyman <michael@snoyman.com> -synopsis: Generate XML sitemaps. -category: Web, Yesod -stability: Stable -cabal-version: >= 1.6 -build-type: Simple -homepage: http://docs.yesodweb.com/ - -library - build-depends: base >= 4 && < 5 - , yesod-core >= 0.7 && < 0.8 - , time >= 1.1.4 && < 1.3 - , hamlet >= 0.7 && < 0.8 - exposed-modules: Yesod.Helpers.Sitemap - ghc-options: -Wall - -source-repository head - type: git - location: git://github.com/snoyberg/yesod-sitemap.git +name: yesod-sitemap+version: 0.1.0+license: BSD3+license-file: LICENSE+author: Michael Snoyman <michael@snoyman.com>+maintainer: Michael Snoyman <michael@snoyman.com>+synopsis: Generate XML sitemaps.+category: Web, Yesod+stability: Stable+cabal-version: >= 1.6+build-type: Simple+homepage: http://docs.yesodweb.com/++library+ build-depends: base >= 4 && < 5+ , yesod-core >= 0.8 && < 0.9+ , time >= 1.1.4 && < 1.3+ , hamlet >= 0.8 && < 0.9+ exposed-modules: Yesod.Helpers.Sitemap+ ghc-options: -Wall++source-repository head+ type: git+ location: git://github.com/snoyberg/yesod-sitemap.git