diff --git a/README.md b/README.md index 8a66913..7291b3a 100644 --- a/README.md +++ b/README.md @@ -11,15 +11,16 @@ This theme is pretty basic and covers all of the essentials. All you have to do --- - [Hello Friend](#hello-friend) - - [DEMO - https://hugo-hello-friend.now.sh/](#demo---httpshugo-hello-friendnowsh) + - [DEMO - https://hugo-hello-friend.now.sh/](#demo---httpshugo-hello-friendnowsh) - [Features](#features) - [Built-in shortcodes](#built-in-shortcodes) - [Code highlighting](#code-highlighting) + - [Improved RSS Feed](#improved-rss-feed) - [How to start](#how-to-start) - [How to configure](#how-to-configure) - [How to add a cover image to your posts](#how-to-add-a-cover-image-to-your-posts) - [How to display the Last Modified Date in your posts](#how-to-display-the-last-modified-date-in-your-posts) - - [How to hide "Read more" button](#how-to-hide-%22read-more%22-button) + - [How to hide "Read more" button](#how-to-hide-read-more-button) - [Add-ons](#add-ons) - [How to run your site](#how-to-run-your-site) - [How to edit the theme](#how-to-edit-the-theme) @@ -57,6 +58,16 @@ By default the theme is using PrismJS to color your code syntax. All you need to **Supported languages**: bash/shell, css, clike, javascript, apacheconf, actionscript, applescript, c, csharp, cpp, coffeescript, ruby, csp, css-extras, diff, django, docker, elixir, elm, markup-templating, erlang, fsharp, flow, git, go, graphql, less, handlebars, haskell, http, java, json, kotlin, latex, markdown, makefile, objectivec, ocaml, perl, php, php-extras, r, sql, processing, scss, python, jsx, typescript, toml, reason, textile, rust, sass, stylus, scheme, pug, swift, yaml, haml, twig, tsx, vim, visual-basic, wasm. +#### Improved RSS Feed + +Some enhancements have been made to Hugo's [internal RSS](https://github.com/gohugoio/hugo/blob/25a6b33693992e8c6d9c35bc1e781ce3e2bca4be/tpl/tplimpl/embedded/templates/_default/rss.xml) generation code. + +**A page's cover image now appears at the top of its feed display**. This image is set manually using [the cover params](#how-to-add-a-cover-image-to-your-posts). If unset, the RSS generator searches for the first image file in the page bundle whose name includes 'featured', 'cover', or 'thumbnail'. + +**You can optionally display the full page content in your RSS feed** (default is Description or Summary data from Front Matter). Set `rssFullText = true` in your `config.toml` file to enable this option. + +**You can choose a site image to be displayed when searching for your RSS feed.** Set `rssImage = "image/url/here"` in your `config.toml` file to enable this option. + ## How to start You can download the theme manually by going to [https://github.com/panr/hugo-theme-hello-friend.git](https://github.com/panr/hugo-theme-hello-friend.git) and pasting it to `themes/hello-friend` in your root directory. @@ -98,7 +109,11 @@ paginate = 5 # Show table of contents at the top of your posts (defaults to false) # Alternatively, add this param to post front matter for specific posts - toc = true + # toc = true + + # Show full page content in RSS feed items + #(default is Description or Summary metadata in the front matter) + # rssFullText = true [languages] [languages.en] diff --git a/layouts/_default/rss.xml b/layouts/_default/rss.xml new file mode 100644 index 0000000..83dd3d3 --- /dev/null +++ b/layouts/_default/rss.xml @@ -0,0 +1,64 @@ +{{- $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 "" | safeHTML }} + + + {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }} + + {{ if .Site.Params.RssImage }} + {{ printf "%s%s" .Permalink .Site.Params.RssImage }} + {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }} + {{ .Permalink }} + + {{ end }} + + {{ .Permalink }} + Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }} + Hugo -- gohugo.io{{ with .Site.LanguageCode }} + {{.}}{{end}}{{ with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}}{{ with .Site.Copyright }} + {{.}}{{end}}{{ if not .Date.IsZero }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }} + {{ with .OutputFormats.Get "RSS" }} + {{ printf "" .Permalink .MediaType | safeHTML }} + {{ end }} + {{ range $pages }} + + {{ .Title }} + {{ .Permalink }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{ with .Site.Author.email }}{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}} + {{ .Permalink }} + + {{ if .Params.Cover }} + {{ if .Params.UseRelativeCover }}{{ printf "" .Permalink .Params.Cover }} + {{ else }}{{ printf "" (.Params.Cover | absURL) }} + {{ end }} + {{ else }} + {{ $images := .Resources.ByType "image" }} + {{ $featured := $images.GetMatch "{*featured*,*cover*,*thumbnail*}" }} + {{ with $featured }}{{ printf "" $featured.Permalink }}{{ end }} + {{ end }} + + {{ if .Site.Params.RssFullText }}{{ .Content | html }} + {{ else }} + {{ with .Description }}{{ . | html }} + {{ else }}{{ .Summary | html }} + {{ end }} + {{ end }} + + + {{ end }} + + \ No newline at end of file