sitemap

package
v0.0.0-...-44fac2b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 24, 2024 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

Package sitemap provides tools for creating XML sitemaps and sitemap indexes and writing them to io.Writer (such as net/http.ResponseWriter).

Please see https://www.sitemaps.org/ for description of sitemap contents.

Index

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 or SitemapIndex URL 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"`

	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.

func New

func New() *Sitemap

New returns a new Sitemap.

func (*Sitemap) Add

func (s *Sitemap) Add(u *URL)

Add adds an URL to a Sitemap.

func (*Sitemap) ReadFrom

func (s *Sitemap) ReadFrom(r io.Reader) (n int64, err error)

ReadFrom reads and parses an XML encoded sitemap from io.Reader. Implements io.ReaderFrom.

func (*Sitemap) WriteTo

func (s *Sitemap) WriteTo(w io.Writer) (n int64, err error)

WriteTo writes XML encoded sitemap to given io.Writer. Implements io.WriterTo.

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.

func NewSitemapIndex

func NewSitemapIndex() *SitemapIndex

NewSitemapIndex returns new SitemapIndex.

func (*SitemapIndex) Add

func (s *SitemapIndex) Add(u *URL)

Add adds an URL to a SitemapIndex.

func (*SitemapIndex) ReadFrom

func (s *SitemapIndex) ReadFrom(r io.Reader) (n int64, err error)

ReadFrom reads and parses an XML encoded sitemap index from io.Reader. Implements io.ReaderFrom.

func (*SitemapIndex) WriteTo

func (s *SitemapIndex) WriteTo(w io.Writer) (n int64, err error)

WriteTo writes XML encoded sitemap index to given io.Writer. Implements io.WriterTo.

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"`
}

URL entry in Sitemap or SitemapIndex. 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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL