+++ title = "Web Feeds" description = "Share RSS feeds with full-content and optional enclosures." categories = ["search"] tags = ["metadata", "robots", "SEO"] features = ["snippets", "related content", "code highlighter"] [[copyright]] owner = "Josh Habdas" date = "2019" license = "agpl-3.0-or-later" +++ After Dark provides RSS web feeds conforming with the {{< external "https://cyber.harvard.edu/rss/rss.html" "RSS 2.0 Specification" />}} and enhanced semantically using the following custom extensions: - {{< external "https://purl.org/rss/1.0/modules/content/" "Content Module" />}} to convey the full content of pages and posts - {{< external "https://purl.org/dc/elements/1.1/" "Dublin Core" />}} to give authorship credit on individual pages - {{< external "https://www.w3.org/2005/Atom" "Atom" />}} for improved compatibility with Atom feeds Feeds are generated automatically on a per-section basis, in addition to a consolidated site-wide feed combining content from across the site: - [/index.xml](/index.xml) site-wide feed - [/feature/index.xml](/feature/index.xml) features feed - [/module/index.xml](/module/index.xml) modules feed - [/shortcode/index.xml](/shortcode/index.xml) shortcodes feed - [/extra/index.xml](/extra/index.xml) extras feed Add multimedia attachments to pages and posts using RSS enclosures. Enclosures will output automatically to feeds when supplied. To supply an enclosure create a {{< external "https://gohugo.io/content-management/page-bundles/" "Page Bundle" />}} as described in [Post Images]({{< relref "post-images" >}}) and shown here for a blog post: ``` ├── archetypes ├── content │ └── post │ └── backup-restore-macos-mojave │ ├── assets │ │ └── macos_v10.14.3-upgrade-fail.mp4 │ ├── images │ └── index.md ├── layouts ``` Then reference the resource from front matter as shown here: ```toml [[resources]] src = "assets/macos_v10.14.3-upgrade-fail.mp4" name = "enclosure" title = "Software Update Malfunction: Mojave 10.14.3" [resources.params] length = "3705578" ``` {{% hackcss-alert type="info" %}}**Note:** Length is the number of bytes in the file and required by RSS 2.0 spec.{{% /hackcss-alert %}} {{% hackcss-alert type="success" %}}**Tip:** From a terminal get length using `wc -c < /path/to/file`.{{% /hackcss-alert %}} Enclosures may be output to page content by creating a custom shortcode or using a [Custom Layout]({{< relref "custom-layouts" >}}) with content like: ```go-html-template {{ with .Resources.GetMatch "enclosure" }}{{ if .Params.length }} Enclosure {{ end }}{{ end }} ``` Use the {{< external "https://validator.w3.org/feed/" "W3C Feed Validation Service" />}} to validate your feed. For help creating custom shortcodes see {{< external "https://gohugo.io/templates/shortcode-templates/#create-custom-shortcodes" "Create Your Own Shortcodes" />}} on the Hugo docs site. See {{< external "https://gohugo.io/templates/rss/" "RSS Templates" />}} in Hugo for additional information.