aboutsummaryrefslogtreecommitdiff
path: root/themes/default/layouts/_default/rss.xml
blob: 2925201a71184c596de3a147dcd8d499a1646e5e (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
120
121
122
123
124
125
126
127
128
129
130
131
132
{{- $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 -}}

{{- $profile := $author.picture.profile -}}
{{- $file := not (urls.Parse $profile).Host -}}

{{- if $file -}}
  {{- $profile = print $author.user "/" $profile -}}
{{- end -}}

{{- $image := partial "function-caches-images.html"
  (dict
    "Source"        $profile
    "Fit"           "160x160"
    "Target"        (print (partial "function-paths.html" "media") "/" $author.user "/")
    "Copy"          (print (partial "function-paths.html" "media") "/" $author.user "/" (path.Base $profile))
    "AlternateCopy" (print (partial "function-paths.html" "media") "/" $author.user "/" (path.BaseName $profile) ".webp")
  )
-}}

{{- $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>{{ $image.Permalink }}</url>
      <link>{{ .Permalink }}</link>
    </image>

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

    {{ range first $limit $filteredPages -}}

      {{- $author = partial "function-authors-data.html" . -}}
      {{- $profile = $author.picture.profile -}}
      {{- $file = not (urls.Parse $profile).Host -}}

      {{- if $file -}}
        {{- $profile = print $author.user "/" $profile -}}
      {{- end -}}

      {{- $image = partial "function-caches-images.html"
        (dict
          "Source"        $profile
          "Fit"           "160x160"
          "Target"        (print (partial "function-paths.html" "media") "/" $author.user "/")
          "Copy"          (print (partial "function-paths.html" "media") "/" $author.user "/" (path.Base $profile))
          "AlternateCopy" (print (partial "function-paths.html" "media") "/" $author.user "/" (path.BaseName $profile) ".webp")
        )
      -}}

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

      {{- if .Params.Feed.favicon -}}
        {{- $atomAuthorUri = .Params.Feed.favicon | absURL -}}
      {{- 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>