summaryrefslogtreecommitdiffstats
path: root/layouts/_default/list.feed.xml
blob: c55b19b80aa964aa4e9afa67aefc774146cb13e1 (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
{{- $pctx := . -}}
{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}}

{{- $pages := slice -}}
{{- if $.IsHome -}}
    {{- $pages = where $pctx.RegularPages.ByDate.Reverse "Type" "in" site.Params.mainSections -}}
{{- else if $.IsSection -}}
    {{- $pages = $pctx.RegularPages.ByDate.Reverse -}}
{{- else -}}
    {{- $pages = $pctx.Pages -}}
{{- end -}}

{{- $limit := site.Params.feedSize | default 25 -}}
{{- $pages = $pages | first $limit -}}

{{- safeHTML "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" }}
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:media="http://search.yahoo.com/mrss/"
    xml:lang="{{ site.LanguageCode }}">
    <channel>
        {{ printf `<title type="html"><![CDATA[%s]]></title>` (partial "title.html" .) | safeHTML }}
    </channel>
    <link type="text/html">{{ site.BaseURL | absURL }}</link>
    {{ $logo := resources.Get (site.Params.assets.logo | default "/img/open-graph-logo.png") }}{{ $logo = $logo.Resize "96x96" }}
    <image>
        <url>{{ $logo.Permalink | absURL }}</url>
        {{ printf `<title type="html"><![CDATA[%s]]></title>` (partial "title.html" .) | safeHTML }}
        <link>{{ site.BaseURL | absURL }}</link>
        <width>{{ $logo.Width }}</width>
        <height>{{ $logo.Height }}</height>
    </image>
    {{- $output_formats := .OutputFormats }}
    {{- range $output_formats -}}
    {{- $rel := (or (and (eq "feed" (.Name | lower)) "self") "alternate") -}}
    {{- with $output_formats.Get .Name }}
    {{ printf `<atom:link href=%q rel=%q type=%q title=%q />` .Permalink $rel .MediaType.Type .Name | safeHTML }}
    {{- end -}}
    {{- end }}
    {{ with site.Params.description }}{{ printf `<description type="html"><![CDATA[%s]]></description>` . | safeHTML }}{{ end }}
    <generator>Hugo {{ hugo.Version }}</generator>
    {{ with site.Author.name }}{{ printf `<dc:creator type="html"><![CDATA[%s]]></dc:creator>` . | safeHTML }}{{ end }}
    {{ with site.LanguageCode }}<language>{{ . }}</language>{{ end }}
    {{ with site.Params.Copyright }}
    {{- $copyright := replace . "{year}" now.Year -}}
    {{- $copyright = replace $copyright "&copy;" "©" }}<copyright>{{ $copyright | plainify }}</copyright>{{ end }}
    {{ if not site.LastChange.IsZero }}<lastBuildDate>{{ site.LastChange.UTC.Format site.Params.dateFormatRFC822Z | html }}</lastBuildDate>{{ end }}
    {{ $feedsize := site.Params.feedSize | default 25 }}
    {{- range $pages }}
    <item>
        {{ printf `<title type="html"><![CDATA[%s]]></title>` .Title | safeHTML }}
        <link>{{ .Permalink | absURL }}?utm_source=rss_feed</link>
        <pubDate>{{ .PublishDate.UTC.Format site.Params.dateFormatRFC822Z | html }}</pubDate>
        <category>{{ .Section }}</category>
        {{ range (.GetTerms "tags") }}<category>{{ .LinkTitle }}</category>{{end}}
        <guid isPermaLink="false">{{ md5 .Permalink }}</guid>
        {{ printf `<description type="html"><![CDATA[%s]]></description>` .Summary | safeHTML }}
    </item>
    {{ end }}
</rss>