Documentation
¶
Overview ¶
Package sitemap provides tools for creating XML sitemaps and sitemap indexes and writing them to io.Writer (such as http.ResponseWriter).
Please see http://www.sitemaps.org/ for description of sitemap contents.
Example ¶
package main
import (
"github.com/snabb/sitemap"
"os"
"time"
)
func main() {
sm := sitemap.New()
t := time.Unix(0, 0).UTC()
sm.Add(&sitemap.URL{
Loc: "http://example.com/",
LastMod: &t,
ChangeFreq: sitemap.Daily,
})
sm.WriteTo(os.Stdout)
}
Output: <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>http://example.com/</loc> <lastmod>1970-01-01T00:00:00Z</lastmod> <changefreq>daily</changefreq> </url> </urlset>
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ChangeFreq ¶
type ChangeFreq string
ChangeFreq specifies change frequency of a sitemap entry. It is just a string.
const ( Always ChangeFreq = "always" Hourly ChangeFreq = "hourly" Daily ChangeFreq = "daily" Weekly ChangeFreq = "weekly" Monthly ChangeFreq = "monthly" Yearly ChangeFreq = "yearly" Never ChangeFreq = "never" )
Feel free to use these constants for ChangeFreq (or you can just supply a string directly).
type Sitemap ¶
type Sitemap struct {
XMLName xml.Name `xml:"urlset"`
Xmlns string `xml:"xmlns,attr"`
XmlnsXHtml string `xml:"xmlns:xhtml,attr"`
URLs []*URL `xml:"url"`
Minify bool `xml:"-"`
}
Sitemap represents a complete sitemap which can be marshaled to XML. New instances must be created with New() in order to set the xmlns attribute correctly. Minify can be set to make the output less human readable.
type SitemapIndex ¶
type SitemapIndex struct {
XMLName xml.Name `xml:"sitemapindex"`
Xmlns string `xml:"xmlns,attr"`
URLs []*URL `xml:"sitemap"`
Minify bool `xml:"-"`
}
SitemapIndex is like Sitemap except the elements are named differently (and ChangeFreq and Priority may not be used). New instances must be created with NewSitemapIndex() in order to set the xmlns attribute correctly. Minify can be set to make the output less human readable.
Example ¶
package main
import (
"github.com/snabb/sitemap"
"os"
"time"
)
func main() {
smi := sitemap.NewSitemapIndex()
t := time.Unix(0, 0).UTC()
smi.Add(&sitemap.URL{
Loc: "http://example.com/sitemap-1.xml",
LastMod: &t,
})
smi.WriteTo(os.Stdout)
}
Output: <?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap> <loc>http://example.com/sitemap-1.xml</loc> <lastmod>1970-01-01T00:00:00Z</lastmod> </sitemap> </sitemapindex>
func NewSitemapIndex ¶
func NewSitemapIndex() *SitemapIndex
NewSitemapIndex returns new SitemapIndex.
type URL ¶
type URL struct {
Loc string `xml:"loc"`
LastMod *time.Time `xml:"lastmod,omitempty"`
ChangeFreq ChangeFreq `xml:"changefreq,omitempty"`
Priority float32 `xml:"priority,omitempty"`
Alternates []*AltURL `xml:"xhtml:link"`
}
URL entry in sitemap or sitemap index. LastMod is a pointer to time.Time because omitempty does not work otherwise. Loc is the only mandatory item. ChangeFreq and Priority must be left empty when using with a sitemap index.