yesod-sitemap 0.0.0 → 0.0.0.1
raw patch · 4 files changed
+137/−138 lines, 4 filessetup-changedPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- LICENSE +25/−25
- Setup.lhs +7/−7
- Yesod/Helpers/Sitemap.hs +81/−82
- 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,82 +1,81 @@-{-# 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-<div id="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 #-} +--------------------------------------------------------- +-- +-- 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
yesod-sitemap.cabal view
@@ -1,24 +1,24 @@-name: yesod-sitemap-version: 0.0.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.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.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