RSS Templates
RSS Template Lookup Order
See Template Lookup Order for the complete reference.
RSS pages are of the type Page
and have all the page variables available to use in the templates.
Section RSS
A section’s RSS will be rendered at /<SECTION>/index.xml
(e.g., https://spf13.com/project/index.xml).
Hugo provides the ability for you to define any RSS type you wish and can have different RSS files for each section and taxonomy.
Lookup Order for RSS Templates
The table below shows the RSS template lookup order for the different page kinds. The first listing shows the lookup order when running with a theme (demoTheme
).
Example | OutputFormat | Suffix | Template Lookup Order |
---|---|---|---|
RSS home | RSS | xml |
|
RSS section posts | RSS | xml |
|
Taxonomy in categories | RSS | xml |
|
Term in categories | RSS | xml |
|
Configure RSS
By default, Hugo will create an unlimited number of RSS entries. You can limit the number of articles included in the built-in RSS templates by assigning a numeric value to rssLimit:
field in your project’s config
file.
The following values will also be included in the RSS output if specified:
author:
name: My Name Here
copyright: This work is licensed under a Creative Commons Attribution-ShareAlike 4.0
International License.
languageCode: en-us
copyright = 'This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.'
languageCode = 'en-us'
[author]
name = 'My Name Here'
{
"author": {
"name": "My Name Here"
},
"copyright": "This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.",
"languageCode": "en-us"
}
The Embedded rss.xml
This is the default RSS template that ships with Hugo:
https://github.com/gohugoio/hugo/blob/master/tpl/tplimpl/embedded/templates/_default/rss.xml
Reference your RSS Feed in <head>
In your header.html
template, you can specify your RSS feed in your <head></head>
tag using Hugo’s Output Formats like this:
{{ range .AlternativeOutputFormats -}}
{{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }}
{{ end -}}
If you only want the RSS link, you can query the formats:
{{ with .OutputFormats.Get "rss" -}}
{{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }}
{{ end -}}
Either of the two snippets above will generate the below link
tag on the site homepage for RSS output:
<link rel="alternate" type="application/rss+xml" href="https://example.com/index.xml" title="Site Title">
We are assuming BaseURL
to be https://example.com/
and $.Site.Title
to be "Site Title"
in this example.