aboutsummaryrefslogtreecommitdiff
path: root/themes/default/layouts/_default/rss.xml
blob: 16aee5fa9e4c29aa90e98647560221f2dc81f6aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
{{- define "main" -}}

{{- $absURL := "" | absURL -}}

{{- $limit := .Site.Config.Services.RSS.Limit -}}

{{- if lt $limit 1 -}}
  {{- $limit = .Paginator.TotalNumberOfElements -}}
{{- end -}}

{{- $lastBuildDate := now | time.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML -}}

{{- if not .Date.IsZero -}}
  {{- $lastBuildDate = .Date | time.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML -}}
{{- end -}}

{{- $title := partial "head-title.html" . -}}
{{- $description := partial "head-title.html" . -}}
{{- $author := partial "function-authors-data.html" . -}}
{{- $image := print "/favicon.ico" -}}

{{- if (eq .Page.Kind "section") -}}
  {{- $title = $author.name -}}
  {{- $description = $author.description | markdownify | html | htmlUnescape -}}
  {{- $image = print "/" (partial "function-paths.html").media "/" .Section "/" .Section "-profile" (path.Ext $author.picture.profile) -}}
{{- end -}}

{{- if (eq .Page.Type "tags") -}}
  {{- $title = print "#" (lower .Title) " -- " .Site.Title | markdownify | htmlUnescape -}}
  {{- $description = print .Site.Title " Tags: #" .Title -}}
{{- end -}}

{{- $atomSelf := "" -}}
{{- $atomPrevious := "" -}}
{{- $atomNext := "" -}}

{{- with .OutputFormats.Get "RSS" -}}
  {{- $atomSelf = printf `<atom:link rel="self" href=%q type=%q />` .Permalink .MediaType | safeHTML -}}

  {{- with $.Paginator.Prev -}}
    {{- $atomPrevious = printf `<atom:link rel="previous" href=%q />` (.URL | absURL) | safeHTML -}}
  {{- end -}}

  {{- with $.Paginator.Next -}}
    {{- $atomNext = printf `<atom:link rel="next" href=%q />` (.URL | absURL) | safeHTML -}}
  {{- end -}}
{{- end -}}

{{- $filteredPages := partial "function-filters-content.html" .Paginator.Pages -}}

{{- printf `<?xml version="1.0" encoding="utf-8" standalone="yes"?>` | safeHTML }}
{{ printf `<?xml-stylesheet href="/rss.xsl" type="text/xsl"?>` | safeHTML }}

<rss
  version="2.0"
  xmlns:atom="http://www.w3.org/2005/Atom"
>
  <channel>
    <title>{{ or $title (title .Section) }}</title>
    <link>{{ .Permalink }}</link>
    <description>{{ $description }}</description>
    <language>{{ .Site.LanguageCode }}</language>
    <category>{{ or $author.user "default" }}</category>
    <generator>Hugo {{ hugo.Version }}</generator>
    <lastBuildDate>{{ $lastBuildDate }}</lastBuildDate>
    <image>
      <title>{{ $title }}</title>
      <url>{{ $absURL }}{{ $image }}</url>
      <link>{{ .Permalink }}</link>
    </image>

    {{ $atomSelf }}
    {{ $atomPrevious }}
    {{ $atomNext }}

    {{ range first $limit $filteredPages -}}

      {{- $author = partial "function-authors-data.html" . -}}

      {{- $image = print "/" (partial "function-paths.html").media
        "/" $author.user "/" $author.user "-profile" (path.Ext $author.picture.profile)
      -}}

      {{- $atomAuthorUri := print $absURL $image -}}
      {{- $atomAuthorName := or .Params.Feed.name $author.name -}}

      {{- if .Params.Feed.favicon -}}
        {{- $favicon := print "/" (partial "function-paths.html").media "/favicon." (.Params.Feed.source | anchorize) ".png" -}}
        {{- $atomAuthorUri = print $absURL $favicon -}}
      {{- end -}}

      <item>
        <title>{{ (or .Summary .Title) | htmlUnescape }}</title>
        <link>{{ or .Params.Feed.link .Permalink }}</link>
        <pubDate>{{ .Date | time.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
        <guid>{{ .Permalink }}</guid>
        <description>
          {{ partial "function-content.html" . | html -}}
          {{- print "<br /><br />" | html -}}
          {{- printf `<a href=%q>Permalink</a>&nbsp;` .Permalink | html }}
          {{ partial "tags.html" (dict "Format" "rss" "Context" .) | html }}
        </description>
        <atom:author>
          <atom:name>{{ $atomAuthorName }}</atom:name>
          <atom:uri>{{ $atomAuthorUri }}</atom:uri>
        </atom:author>
      </item>

    {{ end -}}
  </channel>
</rss>
{{- end -}}