sitemap-gen-0.1.0.0: Generate XML Sitemaps & Sitemap Indexes

Safe HaskellNone
LanguageHaskell2010

Web.Sitemap.Gen

Contents

Description

The Web.Sitemap.Gen module contains types & rendering functions to generate XML compliant with the sitemaps.org specification.

For more information see https://www.sitemaps.org/protocol.html

Synopsis

Sitemaps

newtype Sitemap Source #

A Sitemap contains multiple SitemapUrl elements which describe crawlable locations for search engines.

Constructors

Sitemap 

Fields

Instances
Eq Sitemap Source # 
Instance details

Defined in Web.Sitemap.Gen

Methods

(==) :: Sitemap -> Sitemap -> Bool #

(/=) :: Sitemap -> Sitemap -> Bool #

Read Sitemap Source # 
Instance details

Defined in Web.Sitemap.Gen

Show Sitemap Source # 
Instance details

Defined in Web.Sitemap.Gen

Generic Sitemap Source # 
Instance details

Defined in Web.Sitemap.Gen

Associated Types

type Rep Sitemap :: Type -> Type #

Methods

from :: Sitemap -> Rep Sitemap x #

to :: Rep Sitemap x -> Sitemap #

type Rep Sitemap Source # 
Instance details

Defined in Web.Sitemap.Gen

type Rep Sitemap = D1 (MetaData "Sitemap" "Web.Sitemap.Gen" "sitemap-gen-0.1.0.0-38twZSkxbtk4P5or3XePQL" True) (C1 (MetaCons "Sitemap" PrefixI True) (S1 (MetaSel (Just "sitemapUrls") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [SitemapUrl])))

renderSitemap :: XmlOutput x => Sitemap -> x Source #

Render a Sitemap into a output format supported by the xmlgen package.

In most cases you will want to generate a ByteString.

data SitemapUrl Source #

A SitemapUrl describes a single URL in a Sitemap.

Constructors

SitemapUrl 

Fields

Instances
Eq SitemapUrl Source # 
Instance details

Defined in Web.Sitemap.Gen

Read SitemapUrl Source # 
Instance details

Defined in Web.Sitemap.Gen

Show SitemapUrl Source # 
Instance details

Defined in Web.Sitemap.Gen

Generic SitemapUrl Source # 
Instance details

Defined in Web.Sitemap.Gen

Associated Types

type Rep SitemapUrl :: Type -> Type #

type Rep SitemapUrl Source # 
Instance details

Defined in Web.Sitemap.Gen

type Rep SitemapUrl = D1 (MetaData "SitemapUrl" "Web.Sitemap.Gen" "sitemap-gen-0.1.0.0-38twZSkxbtk4P5or3XePQL" False) (C1 (MetaCons "SitemapUrl" PrefixI True) ((S1 (MetaSel (Just "sitemapLocation") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text) :*: S1 (MetaSel (Just "sitemapLastModified") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe UTCTime))) :*: (S1 (MetaSel (Just "sitemapChangeFrequency") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe ChangeFrequency)) :*: S1 (MetaSel (Just "sitemapPriority") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe Double)))))

renderSitemapUrl :: SitemapUrl -> Xml Elem Source #

Render a SitemapUrl as a url XML element.

data ChangeFrequency Source #

Describes how often a SitemapUrl' is updated. This is considered a hint for crawlers and may or may not be respected.

Constructors

Always

The page changes every time it is visited.

Hourly 
Daily 
Weekly 
Monthly 
Yearly 
Never

The page is archived and will never change from now on.

Instances
Bounded ChangeFrequency Source # 
Instance details

Defined in Web.Sitemap.Gen

Enum ChangeFrequency Source # 
Instance details

Defined in Web.Sitemap.Gen

Eq ChangeFrequency Source # 
Instance details

Defined in Web.Sitemap.Gen

Read ChangeFrequency Source # 
Instance details

Defined in Web.Sitemap.Gen

Show ChangeFrequency Source # 
Instance details

Defined in Web.Sitemap.Gen

Generic ChangeFrequency Source # 
Instance details

Defined in Web.Sitemap.Gen

Associated Types

type Rep ChangeFrequency :: Type -> Type #

type Rep ChangeFrequency Source # 
Instance details

Defined in Web.Sitemap.Gen

type Rep ChangeFrequency = D1 (MetaData "ChangeFrequency" "Web.Sitemap.Gen" "sitemap-gen-0.1.0.0-38twZSkxbtk4P5or3XePQL" False) ((C1 (MetaCons "Always" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Hourly" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Daily" PrefixI False) (U1 :: Type -> Type))) :+: ((C1 (MetaCons "Weekly" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Monthly" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Yearly" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Never" PrefixI False) (U1 :: Type -> Type))))

renderChangeFrequency :: ChangeFrequency -> Xml Elem Source #

Build the XML text content for a ChangeFrequency.

Sitemap Indexes

newtype SitemapIndex Source #

A SitemapIndex allows informing crawlers of multiple sitemap files hosted on the same domain.

See https://www.sitemaps.org/protocol.html#index

Constructors

SitemapIndex 
Instances
Eq SitemapIndex Source # 
Instance details

Defined in Web.Sitemap.Gen

Read SitemapIndex Source # 
Instance details

Defined in Web.Sitemap.Gen

Show SitemapIndex Source # 
Instance details

Defined in Web.Sitemap.Gen

Generic SitemapIndex Source # 
Instance details

Defined in Web.Sitemap.Gen

Associated Types

type Rep SitemapIndex :: Type -> Type #

type Rep SitemapIndex Source # 
Instance details

Defined in Web.Sitemap.Gen

type Rep SitemapIndex = D1 (MetaData "SitemapIndex" "Web.Sitemap.Gen" "sitemap-gen-0.1.0.0-38twZSkxbtk4P5or3XePQL" True) (C1 (MetaCons "SitemapIndex" PrefixI True) (S1 (MetaSel (Just "indexEntries") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [IndexEntry])))

renderSitemapIndex :: XmlOutput x => SitemapIndex -> x Source #

Render a SitemapIndex into an output format supported by the xmlgen package.

data IndexEntry Source #

A single sitemap entry for a sitemap index.

Constructors

IndexEntry 

Fields

Instances
Eq IndexEntry Source # 
Instance details

Defined in Web.Sitemap.Gen

Read IndexEntry Source # 
Instance details

Defined in Web.Sitemap.Gen

Show IndexEntry Source # 
Instance details

Defined in Web.Sitemap.Gen

Generic IndexEntry Source # 
Instance details

Defined in Web.Sitemap.Gen

Associated Types

type Rep IndexEntry :: Type -> Type #

type Rep IndexEntry Source # 
Instance details

Defined in Web.Sitemap.Gen

type Rep IndexEntry = D1 (MetaData "IndexEntry" "Web.Sitemap.Gen" "sitemap-gen-0.1.0.0-38twZSkxbtk4P5or3XePQL" False) (C1 (MetaCons "IndexEntry" PrefixI True) (S1 (MetaSel (Just "indexLocation") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text) :*: S1 (MetaSel (Just "indexLastModified") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe UTCTime))))

renderIndexEntry :: IndexEntry -> Xml Elem Source #

Render an IndexEntry as a sitemap element.

Utilities

sitemapNamespace :: Namespace Source #

An XML Namespace for the sitemaps.org v0.9 schema.

formatSitemapTime :: UTCTime -> Text Source #

Render the UTCTime in YYYY-MM-DDTHH:MM:SS+00:00 format.

renderLastModified :: UTCTime -> Xml Elem Source #

Render a UTCTime in a lastmod element.