Documentation
¶
Overview ¶
Package output contains Output Format types and functions.
Index ¶
- Variables
- type Format
- type Formats
- func (formats Formats) FromFilename(filename string) (f Format, found bool)
- func (formats Formats) GetByName(name string) (f Format, found bool)
- func (formats Formats) GetByNames(names ...string) (Formats, error)
- func (formats Formats) GetBySuffix(suffix string) (f Format, found bool)
- func (formats Formats) Len() int
- func (formats Formats) Less(i, j int) bool
- func (formats Formats) Swap(i, j int)
Constants ¶
This section is empty.
Variables ¶
var ( AMPFormat = Format{ Name: "amp", MediaType: media.Builtin.HTMLType, BaseName: "index", Path: "amp", Rel: "amphtml", IsHTML: true, Permalinkable: true, } CalendarFormat = Format{ Name: "calendar", MediaType: media.Builtin.CalendarType, IsPlainText: true, Protocol: "webcal://", BaseName: "index", Rel: "alternate", } CSSFormat = Format{ Name: "css", MediaType: media.Builtin.CSSType, BaseName: "styles", IsPlainText: true, Rel: "stylesheet", NotAlternative: true, } CSVFormat = Format{ Name: "csv", MediaType: media.Builtin.CSVType, BaseName: "index", IsPlainText: true, Rel: "alternate", } HTMLFormat = Format{ Name: "html", MediaType: media.Builtin.HTMLType, BaseName: "index", Rel: "canonical", IsHTML: true, Permalinkable: true, Weight: 10, } MarkdownFormat = Format{ Name: "markdown", MediaType: media.Builtin.MarkdownType, BaseName: "index", Rel: "alternate", IsPlainText: true, } JSONFormat = Format{ Name: "json", MediaType: media.Builtin.JSONType, BaseName: "index", IsPlainText: true, Rel: "alternate", } WebAppManifestFormat = Format{ Name: "webappmanifest", MediaType: media.Builtin.WebAppManifestType, BaseName: "manifest", IsPlainText: true, NotAlternative: true, Rel: "manifest", } RobotsTxtFormat = Format{ Name: "robots", MediaType: media.Builtin.TextType, BaseName: "robots", IsPlainText: true, Root: true, Rel: "alternate", } RSSFormat = Format{ Name: "rss", MediaType: media.Builtin.RSSType, BaseName: "index", NoUgly: true, Rel: "alternate", } SitemapFormat = Format{ Name: "sitemap", MediaType: media.Builtin.XMLType, BaseName: "sitemap", Ugly: true, Rel: "sitemap", } Page404Format = Format{ Name: "404", MediaType: media.Builtin.HTMLType, BaseName: "404", Ugly: true, Rel: "404", } SitemapIndexFormat = Format{ Name: "sitemapindex", MediaType: media.Builtin.XMLType, BaseName: "sitemap", Ugly: true, Root: true, Rel: "sitemap", } HTTPStatusHTMLFormat = Format{ Name: "httpstatus", MediaType: media.Builtin.HTMLType, NotAlternative: true, Ugly: true, IsHTML: true, Permalinkable: true, } )
Built-in output formats.
var DefaultFormats = Formats{ AMPFormat, CalendarFormat, CSSFormat, CSVFormat, HTMLFormat, JSONFormat, MarkdownFormat, WebAppManifestFormat, RobotsTxtFormat, RSSFormat, SitemapFormat, }
DefaultFormats contains the default output formats supported by Hugo.
Functions ¶
This section is empty.
Types ¶
type Format ¶
type Format struct {
// The Name is used as an identifier. Internal output formats (i.e. html and rss)
// can be overridden by providing a new definition for those types.
// <docsmeta>{ "identifiers": ["html", "rss"] }</docsmeta>
Name string `json:"-"`
MediaType media.Type `json:"-"`
// Must be set to a value when there are two or more conflicting mediatype for the same resource.
Path string `json:"path"`
// The base output file name used when not using "ugly URLs", defaults to "index".
BaseName string `json:"baseName"`
// The value to use for rel links.
Rel string `json:"rel"`
// The protocol to use, i.e. "webcal://". Defaults to the protocol of the baseURL.
Protocol string `json:"protocol"`
// IsPlainText decides whether to use text/template or html/template
// as template parser.
IsPlainText bool `json:"isPlainText"`
// IsHTML returns whether this format is int the HTML family. This includes
// HTML, AMP etc. This is used to decide when to create alias redirects etc.
IsHTML bool `json:"isHTML"`
// Enable to ignore the global uglyURLs setting.
NoUgly bool `json:"noUgly"`
// Enable to override the global uglyURLs setting.
Ugly bool `json:"ugly"`
// Enable if it doesn't make sense to include this format in an alternative
// format listing, CSS being one good example.
// Note that we use the term "alternative" and not "alternate" here, as it
// does not necessarily replace the other format, it is an alternative representation.
NotAlternative bool `json:"notAlternative"`
// Eneable if this is a resource which path always starts at the root,
// e.g. /robots.txt.
Root bool `json:"root"`
// Setting this will make this output format control the value of
// .Permalink and .RelPermalink for a rendered Page.
// If not set, these values will point to the main (first) output format
// configured. That is probably the behavior you want in most situations,
// as you probably don't want to link back to the RSS version of a page, as an
// example. AMP would, however, be a good example of an output format where this
// behavior is wanted.
Permalinkable bool `json:"permalinkable"`
// Setting this to a non-zero value will be used as the first sort criteria.
Weight int `json:"weight"`
}
Format represents an output representation, usually to a file on disk. <docsmeta>{ "name": "OutputFormat" }</docsmeta>
func (Format) BaseFilename ¶
BaseFilename returns the base filename of f including an extension (ie. "index.xml").
func (Format) MarshalJSON ¶
MarshalJSON returns the JSON encoding of f. For internal use only.
type Formats ¶
type Formats []Format
Formats is a slice of Format.
func DecodeFormats ¶
DecodeFormats takes a list of output format configurations and merges those, in the order given, with the Hugo defaults as the last resort.
func (Formats) FromFilename ¶
FromFilename gets a Format given a filename.
func (Formats) GetByNames ¶
GetByNames gets a list of formats given a list of identifiers.
func (Formats) GetBySuffix ¶
GetBySuffix gets a output format given as suffix, e.g. "html". It will return false if no format could be found, or if the suffix given is ambiguous. The lookup is case insensitive.