This is not a standalone theme. This is a Hugo theme component.
This component enables ATOM feeds for your site.
You need to install the latest version of Go from https://go.dev/doc/install because this theme component requires ~hugo mod ..~ commands to work.
This update on switch to using Hugo Modules was last tested with Hugo v0.92.0.
- Add this component as a new module to your site’s TOML config file:
[module] [[module.imports]] path = "github.com/kaushalmodi/hugo-atom-feed"
- Add “ATOM” to all the Page Kinds for which you want to create ATOM
feeds:
[outputs] # <domain>/atom.xml home = ["HTML", "RSS", "ATOM"] # default = ["HTML", "RSS"] # <domain>/posts/atom.xml section = ["HTML", "RSS", "ATOM"] # default = ["HTML", "RSS"] # <domain>/tags/mytag/atom.xml, <domain>/categories/mycat/atom.xml taxonomy = ["HTML", "RSS", "ATOM"] # default = ["HTML", "RSS"]
For the pages that you would like to exclude from the feed, set the
disable_feed
parameter in its front-matter to true
.
disable_feed = true
To fully comply with web standards, make sure your web server will
send the correct /Content-Type/ HTTP response header for the feed file
name atom.xml
. The correct response header looks like this:
Content-Type: application/atom+xml; charset=UTF-8
Note that even though the feed file extension is .xml
, the MIME type
here is slightly adjusted from application/xml
to
application/atom+xml
.
While this might not be important for many feed readers, it could still be a source of error. So it is a good idea to play safe. How you could achieve this depends on the type of web server software you are running your website on.
You can specify the Content-Type of atom.*
and *.atom
files to
be application/atom+xml; charset=UTF-8
using the below in your site’s
netlify.toml
:
[[headers]]
for = "atom.*"
[headers.values]
Content-Type = "application/atom+xml; charset=UTF-8"
[[headers]]
for = "*.atom"
[headers.values]
Content-Type = "application/atom+xml; charset=UTF-8"
- https://www.netlify.com/docs/headers-and-basic-auth/
- https://www.netlify.com/blog/2017/10/17/introducing-structured-redirects-and-headers/
Note that Google Chrome currently still features a bug for such MIME types so that automatic XML rendering is not performed. You may decide what is more important for you: watching the rendered source in your browser once in a while, or maximum feed reader compatibility 😉.