Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/lxndrblz/anatole.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Park <me@ericswpark.com>2021-05-25 20:59:42 +0300
committerGitHub <noreply@github.com>2021-05-25 20:59:42 +0300
commit80312357ceee167aa9f224281363933a47e27994 (patch)
treee248357fee151cdb3f18df8c75bb7600491e4dee
parentb7c82a7ff11dee3988e346005eb3627ab0964ae7 (diff)
RSS improvements (#207)
* Show full article in RSS feed * README: add RSS information * README: add RSS disable tip Closes #203
-rw-r--r--README.md23
-rw-r--r--layouts/_default/rss.xml43
2 files changed, 66 insertions, 0 deletions
diff --git a/README.md b/README.md
index 2b6b4c5..28e7737 100644
--- a/README.md
+++ b/README.md
@@ -543,6 +543,29 @@ title = "e-mail"
url = "mailto:mail@example.com"
```
+### RSS
+
+Hugo natively supports RSS. To generate a feed for a given page, append `index.xml` to the page URL.
+
+Note that the RSS feed at the base of your website will include all of the pages on your website. To only include posts in your RSS feed, generate the feed within the `posts/` subdirectory with the URL `posts/index.xml`.
+
+To only generate an RSS feed for your posts, disable the RSS output for the other page types:
+
+```toml
+[outputs]
+ home = ["HTML"]
+ section = ["HTML", "RSS"]
+ taxonomy = ["HTML"]
+ term = ["HTML"]
+```
+
+By default, the RSS feed contains a brief summary of each page. If you prefer to show the entire contents for each page, then use the `rssFullContent` parameter:
+
+```toml
+[params]
+rssFullContent = true
+```
+
## License
Anatole is licensed under the [MIT license](https://github.com/lxndrblz/anatole/blob/master/LICENSE).
diff --git a/layouts/_default/rss.xml b/layouts/_default/rss.xml
new file mode 100644
index 0000000..bd2d079
--- /dev/null
+++ b/layouts/_default/rss.xml
@@ -0,0 +1,43 @@
+{{- $pctx := . -}}
+{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}}
+{{- $pages := slice -}}
+{{- if or $.IsHome $.IsSection -}}
+{{- $pages = $pctx.RegularPages -}}
+{{- else -}}
+{{- $pages = $pctx.Pages -}}
+{{- end -}}
+{{- $limit := .Site.Config.Services.RSS.Limit -}}
+{{- if ge $limit 1 -}}
+{{- $pages = $pages | first $limit -}}
+{{- end -}}
+{{- printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>" | safeHTML }}
+<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 }}
+ {{- with .OutputFormats.Get "RSS" -}}
+ {{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
+ {{- end -}}
+ {{ range $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>
+ {{ if eq .Site.Params.rssFullContent true }}
+ <description>{{ .Content | html }}</description>
+ {{ else }}
+ <description>{{ .Summary | html }}</description>
+ {{ end }}
+ </item>
+ {{ end }}
+ </channel>
+</rss> \ No newline at end of file