blob: cec17d8bcde445f290a089aa4e48565405e687eb (
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
{{- $author := index .Site.Data.authors ((or .Params.author .Site.Author.default.user) | default "default") -}}
{{ $feeds := slice }}
{{- if $author.webring.rss -}}
{{ range $key, $value := (seq 3) }}
{{ range $author.webring.rss -}}
{{ with resources.GetRemote . }}
{{- with .Err -}}
{{- warnf "%s" . -}}
{{- end -}}
{{ end }}
{{ with resources.GetRemote . | transform.Unmarshal -}}
{{- $title := "No Title Found" -}}
{{- $link := "https://example.com/link" -}}
{{- $description := "No description found." -}}
{{- $content := "No content found." -}}
{{- $sourceTitle := "No source title found" -}}
{{- $sourceLink := "https://example.com/" -}}
{{- $sourceDescription := "No source description found." -}}
{{- $date := now.Format "January 2, 2006" -}}
{{- $dateTime := now.Format "2006-01-02T15:04:05Z" -}}
{{- $dateTitle := now.Format "Monday, January 2 2006 at 15:04:05 MST" -}}
{{ with .channel -}}
{{ if reflect.IsMap (index .link 0) -}}
{{ $sourceLink = index (index .link 0) "-href" -}}
{{ else -}}
{{ $sourceLink = index .link 0 -}}
{{ end -}}
{{ $sourceDescription = .description -}}
{{ $sourceTitle = .title -}}
{{ range first $value .item -}}
{{ $description = .description -}}
{{ $content = .description -}}
{{ $title = .title -}}
{{ $link = .link -}}
{{ $date = .pubDate -}}
{{ $dateTime = .pubDate -}}
{{ $dateTitle = .pubDate -}}
{{ end -}}
{{ else -}}
{{ $sourceLink = index (index .link 0) "-href" -}}
{{ $sourceTitle = .title -}}
{{ $sourceDescription = .subtitle -}}
{{ range first $value .entry -}}
{{ if reflect.IsMap .title -}}
{{ $title = index .title "#text" -}}
{{ else -}}
{{ $title = .title -}}
{{ end -}}
{{ $date = .updated -}}
{{ $dateTime = .updated -}}
{{ $dateTitle = .updated -}}
{{ $link = .id -}}
{{ with .content -}}
{{ $description = index . "#text" -}}
{{ $content = index . "#text" -}}
{{ end -}}
{{ with .summary -}}
{{ $description = index . "#text" -}}
{{ $content = index . "#text" -}}
{{ end -}}
{{ end -}}
{{ end -}}
{{
$feeds = $feeds | append (dict
"FeedTitle" ($title | plainify | htmlUnescape)
"FeedLink" ($link | plainify | htmlUnescape)
"FeedDescription" (delimit ($description | plainify | htmlUnescape | findRE "^([^.|:|?|!]+)") " ")
"FeedContent" ($content | plainify | htmlUnescape)
"FeedSourceTitle" ($sourceTitle | plainify | htmlUnescape)
"FeedSourceLink" ($sourceLink | plainify | htmlUnescape)
"FeedSourceDescription" ($sourceDescription | plainify | htmlUnescape)
"FeedDate" ($date | plainify | htmlUnescape | time.Format "January 2, 2006")
"FeedDateTime" ($dateTime | plainify | htmlUnescape | time.Format "2006-01-02T15:04:05Z")
"FeedDateTitle" ($dateTitle | plainify | htmlUnescape | time.Format "Monday, January 2 2006 at 15:04:05 MST")
)
}}
{{ end }}
{{ end }}
{{ end }}
{{ range $feeds }}
{{ $template := resources.Get "templates/markdown.yaml" }}
{{ $markdown := resources.ExecuteAsTemplate
(print "/data/generators/content/" $author.user "/feeds/" (urlize (replace .FeedTitle "/" "-")) ".md")
(dict
"content" (print (or .FeedDescription .FeedTitle) ".")
"tags" "[rss]"
"rss" true
"date" .FeedDateTime
)
$template
}}
{{ $writeToFile := $markdown.RelPermalink }}
{{ end }}
<web-ring>
<h1>Web Ring</h1>
<aside>
{{ range first 3 (sort $feeds "FeedDateTime" "desc") }}
<web-ring-item>
<header>
<a
rel="noopener"
target="_blank"
title="{{ .FeedLink }}"
href="{{ .FeedLink }}">
{{ .FeedTitle }}
</a>
</header>
<p>
<time
title="{{ .FeedDateTitle }}"
datetime="{{ .FeedDateTime }}">
{{ .FeedDate }}
</time>
{{- with (print .FeedDescription ".") -}}
{{ "--" | markdownify }}
{{ . }}
{{- end }}
</p>
<a
rel="noopener"
target="_blank"
title="{{ .FeedSourceDescription }}"
href="{{ .FeedSourceLink }}">
{{ .FeedSourceTitle }}
</a>
</web-ring-item>
{{ end }}
</aside>
</web-ring>
{{ end }}
|