aboutsummaryrefslogtreecommitdiff
path: root/themes/default/layouts/_default/rss.xml
blob: 23497baae5700de5beda9b39f8bb22a1296cda84 (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
113
114
115
116
117
118
119
{{- $limit := .Site.Config.Services.RSS.Limit -}}

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

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

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

{{- $title := partial "base-title.html" . -}}
{{- $description := partial "base-title.html" . -}}
{{- $author := partial "function-authors-data.html" . -}}

{{- if (eq .Page.Kind "section") -}}
  {{- $title = $author.name -}}
  {{- $description = $author.description | markdownify | html | htmlUnescape -}}
{{- end -}}

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

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

{{- if not (fileExists (print "public/" $image)) -}}
  {{- $image = "/data/media/404.png" -}}
{{- 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 | safeHTML -}}
  {{- end -}}

  {{- with $.Paginator.Next -}}
    {{- $atomNext = printf `<atom:link rel="next" href=%q />` .URL | 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>{{ $title }}</title>
    <link>{{ .Permalink }}</link>
    <description>{{ $description }}</description>
    <language>{{ .Site.LanguageCode }}</language>
    <category>{{ partial "author-user.html" . }}</category>
    <generator>Hugo {{ hugo.Version }}</generator>
    <lastBuildDate>{{ $lastBuildDate }}</lastBuildDate>
    <image>
      <title>{{ $title }}</title>
      <url>{{ .Site.BaseURL }}{{ $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)
      -}}

      {{- if not (fileExists (print "public/" $image)) -}}
        {{- $image = "/data/media/404.png" -}}
      {{- end -}}

      {{- $atomAuthorUri := print .Site.BaseURL $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" -}}
        {{- if not (fileExists (print "public/" $favicon)) -}}
          {{- $favicon = "/data/media/404.png" -}}
        {{- end -}}
        {{- $atomAuthorUri = print .Site.BaseURL $favicon -}}
      {{- end -}}

      <item>
        <title>{{ (or .Summary .Title) | htmlUnescape }}</title>
        <link>{{ .Permalink }}</link>
        <pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
        <guid>{{ .Permalink }}</guid>
        <description>
          {{- partial "function-content.html" . | html -}}
          {{- print "<br>" | html -}}
          {{- partial "rss-tags.html" . | html -}}
        </description>
        <atom:author>
          <atom:name>{{ $atomAuthorName }}</atom:name>
          <atom:uri>{{ $atomAuthorUri }}</atom:uri>
        </atom:author>
      </item>

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