Hugo Zeige Inhalt Rss Feed

Published on 2017-06-17 by Malte

Durch einen Hinweis im UbuntuUsers Forum habe ich festgestellt, das meine aktuelle Konfiguration von Hugo im RSS Feed nur eine kurz Zusammenfassung enthalten ist. Das wollte ich gerne ändern und habe versucht heraus zufinden, wie ich das am besten mache. Nach einigem Suchen, habe ich dann festgestellt, dass bei Hugo ein integrierter Generator für den RSS Feed mit vorgeschriebenen Einstellung enthalten ist. Um diese Einstellungen anzupassen, muss hierzu folgendes gemacht werden. Wechsel in das Verzeichnis von deiner Hugo Theme. Dort in das Verzeichnis layouts. Jetzt erstellen wir die Datei rss.xml mit folgenden Inhalt:

<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>{{ if eq  .Title  .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }}</title>
    <link>{{ .Permalink }}</link>
    <description>Recent content {{ if ne  .Title  .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }}</description>
    <generator>Hugo -- gohugo.io</generator>{{ with .Site.LanguageCode }}
    <language>{{.}}</language>{{end}}{{ with .Site.Author.email }}
    <managingEditor>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Author.email }}
    <webMaster>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with .Site.Copyright }}
    <copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
    <lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
    <atom:link href="{{.Permalink}}" rel="self" type="application/rss+xml" />
    {{ range .Data.Pages }}
    <item>
      <title>{{ .Title }}</title>
      <link>{{ .Permalink }}</link>
      <pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
      {{ with .Site.Author.email }}<author>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</author>{{end}}
      <guid>{{ .Permalink }}</guid>
      <description>{{ .Content | html }}</description>
    </item>
    {{ end }}
  </channel>
</rss>

Wichtig ist die folgende Zeile:

<description>{{ .Content | html }}</description>

Dadurch geben wir den kompletten Inhalt aus. In eurer config.toml sollte ihr noch folgendes einfügen und anpassen:

languageCode = "en-us"
copyright = "This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License."

[author]
    name = "My Name Here"
    email = "sample@domain.tld"

Fertig. Mein nächsten generieren der Seite, wird die Datei von uns beachtet und schon wird im Feed der komplette Artikel ausgegeben.