HUGO
Menu
GitHub 86531 stars Mastodon

OutputFormats

Returns a slice of OutputFormat objects, each representing one of the output formats enabled for the given page.

Syntax

PAGE.OutputFormats

Returns

[]OutputFormat

An output format is a collection of settings that defines how Hugo renders a file when building a site. For example, html, json, and rss are built-in output formats. You can create multiple output formats and control their generation based on page kind, or by enabling one or more output formats for specific pages.

The OutputFormats method on a Page object returns a slice of OutputFormat objects, each representing one of the output formats enabled for the given page. See details.

Methods

Canonical

New in v0.154.4

(page.OutputFormat) Returns the canonical output format for the current page, if defined. Once you have captured the object, use any of its associated methods.

{{ with .Site.Home.OutputFormats.Canonical }}
  {{ .MediaType.Type }} → text/html
  {{ .MediaType.MainType }} → text
  {{ .MediaType.SubType }} → html
  {{ .Name }} → html
  {{ .Permalink }} → https://example.org/
  {{ .Rel }} → canonical
  {{ .RelPermalink }} → /
{{ end }}

Get

(page.OutputFormat) Returns the OutputFormat object with the given identifier. Once you have captured the object, use any of its associated methods.

{{ with .Site.Home.OutputFormats.Get "rss" }}
  {{ .MediaType.Type }} → application/rss+xml
  {{ .MediaType.MainType }} → application
  {{ .MediaType.SubType }} → rss
  {{ .Name }} → rss
  {{ .Permalink }} → https://example.org/index.xml
  {{ .Rel }} → alternate
  {{ .RelPermalink }} → /index.xml
{{ end }}

Examples

To render a link element pointing to the canonical output format for the current page:

{{ with .OutputFormats.Canonical }}
  {{ printf "<link rel=%q type=%q href=%q>" .Rel .MediaType.Type .Permalink | safeHTML }}
{{ end }}

To render an anchor element pointing to the rss output format for the current page:

{{ with .OutputFormats.Get "rss" }}
  <a href="{{ .RelPermalink }}">RSS Feed</a>
{{ end }}

Please see the link to output formats section to understand the importance of the construct above.