RSS templates
Configuration
By default, when you build your site, Hugo generates RSS feeds for home, section, taxonomy, and term pages. Control feed generation in your site configuration. For example, to generate feeds for home and section pages, but not for taxonomy and term pages:
outputs:
home:
- html
- rss
section:
- html
- rss
taxonomy:
- html
term:
- html
[outputs]
home = ['html', 'rss']
section = ['html', 'rss']
taxonomy = ['html']
term = ['html']
{
"outputs": {
"home": [
"html",
"rss"
],
"section": [
"html",
"rss"
],
"taxonomy": [
"html"
],
"term": [
"html"
]
}
}
To disable feed generation for all page kinds:
disableKinds:
- rss
disableKinds = ['rss']
{
"disableKinds": [
"rss"
]
}
By default, the number of items in each feed is unlimited. Change this as needed in your site configuration:
services:
rss:
limit: 42
[services]
[services.rss]
limit = 42
{
"services": {
"rss": {
"limit": 42
}
}
}
Set limit
to -1
to generate an unlimited number of items per feed.
The built-in RSS template will render the following values, if present, from your site configuration:
author:
email: jdoe@example.org
name: John Doe
copyright: © 2023 ABC Widgets, Inc.
copyright = '© 2023 ABC Widgets, Inc.'
[author]
email = 'jdoe@example.org'
name = 'John Doe'
{
"author": {
"email": "jdoe@example.org",
"name": "John Doe"
},
"copyright": "© 2023 ABC Widgets, Inc."
}
Include feed reference
To include a feed reference in the head
element of your rendered pages, place this within the head
element of your templates:
{{ with .OutputFormats.Get "rss" -}}
{{ printf `<link rel=%q type=%q href=%q title=%q>` .Rel .MediaType.Type .Permalink site.Title | safeHTML }}
{{ end }}
Hugo will render this to:
<link rel="alternate" type="application/rss+xml" href="https://example.org/index.xml" title="ABC Widgets">
Custom templates
Override Hugo’s built-in RSS template by creating one or more of your own, following the naming conventions as shown in the template lookup order table.
For example, to use different templates for home, section, taxonomy, and term pages:
layouts/
└── _default/
├── home.rss.xml
├── section.rss.xml
├── taxonomy.rss.xml
└── term.rss.xml
RSS templates receive the .Page
and .Site
objects in context.
Template lookup order
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 |
|
Section list for "posts" | rss | xml |
|
Taxonomy list for "categories" | rss | xml |
|
Term list for "categories" | rss | xml |
|