add other outputs to members

* json output
* rss xml output

Signed-off-by: Toshaan Bharvani <toshaan@vantosh.com>
jamesk-patch-1
Toshaan Bharvani 3 years ago
parent e3454808c3
commit b3cbad9d7e

@ -1,5 +1,9 @@
--- ---
title: 'Members' title: 'Members'
date: 2021-03-03 outputs:
- html
- json
- rss
date: 2022-01-03
draft: false draft: false
--- ---

@ -0,0 +1,25 @@
{{- $.Scratch.Add "index" slice -}}
{{- $.Scratch.Add "groups" slice -}}
{{- range .Data.Pages -}}
{{- $membercode := .File.BaseFileName -}}
{{- range where .Site.RegularPages "Section" "groups" -}}
{{- $wgname := .Title | plainify -}}
{{- if .Param "members" -}}
{{- range $member := .Param "members" -}}
{{- if eq $member $membercode -}}
{{- $.Scratch.Add "groups" $wgname -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- $.Scratch.Add "index" (dict
"title" .Title
"permalink" .Permalink
"contents" .Plain
"level" .Params.level
"joined" .Params.joined
"country" .Params.country
"groups" ($.Scratch.Get "groups")
) }}
{{- end -}}
{{- $.Scratch.Get "index" | jsonify -}}

@ -0,0 +1,41 @@
{{- printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>" | safeHTML -}}
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }}</title>
<link>{{ .Permalink }}</link>
<description>Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }}</description>
<generator>Hugo -- gohugo.io</generator>
{{ with .Site.LanguageCode }}<language>{{.}}</language>{{end}}
{{ with .Site.Author.email }}<managingEditor>{{.}}{{ with $.Site.Author.name }}({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Author.email }}
<webMaster>{{.}}{{ with $.Site.Author.name }}({{.}}){{end}}</webMaster>{{end}}
{{- with .Site.Copyright -}}<copyright>{{.}}</copyright>{{- end -}}
{{- if not .Date.IsZero }}<lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML -}}</lastBuildDate>{{- end -}}
{{ with .OutputFormats.Get "RSS" }}
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
{{- end -}}
{{ range .Data.Pages.ByDate.Reverse }}
<item>
<title>{{ .Title }}</title>
<link>{{ .Permalink }}</link>
<pubDate>{{- .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML -}}</pubDate>
<guid>{{ .Permalink }}</guid>
<joined>{{ .Params.joined }}</joined>
<country>{{ .Params.country }}</country>
<groups>
{{- $membercode := .File.BaseFileName -}}
{{ range where .Site.RegularPages "Section" "groups" }}
{{- $wgname := .Title | html -}}
{{- if .Param "members" -}}
{{- range $member := .Param "members" -}}
{{- if eq $member $membercode -}}
<group>{{- $wgname | plainify | html -}}</group>
{{- end -}}
{{- end -}}
{{- end -}}
{{ end }}
</groups>
<description>{{- .Content | plainify | html -}}</description>
</item>
{{- end -}}
</channel>
</rss>
Loading…
Cancel
Save