From fce52fd0cba815e564b8fbd996e6766337852274 Mon Sep 17 00:00:00 2001 From: Serghei Iakovlev Date: Sun, 3 Jul 2022 23:53:41 +0200 Subject: Provide template to render pure JSON --- layouts/_default/list.json | 29 ++++++++++++++++++++++++ layouts/_default/list.json.json | 44 ------------------------------------- layouts/_default/list.jsonfeed.json | 44 +++++++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+), 44 deletions(-) create mode 100644 layouts/_default/list.json delete mode 100644 layouts/_default/list.json.json create mode 100644 layouts/_default/list.jsonfeed.json (limited to 'layouts/_default') diff --git a/layouts/_default/list.json b/layouts/_default/list.json new file mode 100644 index 0000000..5742bb3 --- /dev/null +++ b/layouts/_default/list.json @@ -0,0 +1,29 @@ +{{- $pctx := . -}} +{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}} + +{{- $pages := slice -}} +{{- if $.IsHome -}} + {{- $mainSections := site.Params.mainSections | default (slice "posts") }} + {{- $pages = where $pctx.RegularPages.ByDate.Reverse "Type" "in" $mainSections -}} +{{- else if $.IsSection -}} + {{- $pages = $pctx.RegularPages.ByDate.Reverse -}} +{{- else -}} + {{- $pages = $pctx.Pages -}} +{{- end -}} + +{{- $.Scratch.Add "pagesIndex" slice -}} + +{{- range $index, $page := $pages -}} + {{- if gt (len $page.Content) 0 -}} + {{- $pageData := (dict + "title" $page.Title + "href" $page.Permalink + "tags" (delimit ($page.Params.tags | default slice) " ; ") + "categories" (delimit ($page.Params.categories | default slice) " ; ") + "content" $page.Plain + ) -}} + {{- $.Scratch.Add "pagesIndex" $pageData -}} + {{- end -}} +{{- end -}} + +{{- $.Scratch.Get "pagesIndex" | jsonify -}} diff --git a/layouts/_default/list.json.json b/layouts/_default/list.json.json deleted file mode 100644 index f6b89cc..0000000 --- a/layouts/_default/list.json.json +++ /dev/null @@ -1,44 +0,0 @@ -{{- $pctx := . -}} -{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}} - -{{- $pages := slice -}} -{{- if $.IsHome -}} - {{- $mainSections := site.Params.mainSections | default (slice "posts") }} - {{- $pages = where $pctx.RegularPages.ByDate.Reverse "Type" "in" $mainSections -}} -{{- else if $.IsSection -}} - {{- $pages = $pctx.RegularPages.ByDate.Reverse -}} -{{- else -}} - {{- $pages = $pctx.Pages -}} -{{- end -}} - -{{- $limit := site.Params.feedSize | default 25 -}} -{{- $pages = $pages | first $limit -}} - -{ - "version": "https://jsonfeed.org/version/1.1", - "title": {{ (partial "title.html" .) | htmlUnescape | jsonify }}, - "home_page_url": {{ printf "%s?utm_source=json_feed" site.BaseURL | absURL | jsonify }}, - {{ with .OutputFormats.Get "JSON" }}"feed_url": {{ .Permalink | absURL | jsonify }},{{ end }} - {{ with site.Params.description}}"description": {{ site.Params.description | jsonify }},{{ end }} - {{- $logo := resources.Get (site.Params.assets.logo | default "/img/open-graph-logo.png") }}{{ $logo = $logo.Resize "96x96" }} - "icon": {{ $logo.Permalink | jsonify }}, - "favicon": {{ $logo.Permalink | jsonify }}, - {{ with site.Author.name }}"authors": [ - { - "name": {{ . | jsonify }}{{ with site.Author.twitter }}, - "url": {{ (printf "https://twitter.com/%s" . ) | jsonify }}{{ end }} - } - ],{{ end }} - {{ with site.LanguageCode }}"language" : "{{ . }}",{{ end }}{{ $feedsize := site.Params.feedSize | default 25 }} - "items": [{{ range $i, $ := $pages }}{{ if $i }},{{ end }} - { - "id": {{ $uuid := sha1 (.Permalink | absURL)}}"{{substr $uuid 0 8}}-{{substr $uuid 8 4}}-5{{substr $uuid 13 3}}-{{substr $uuid 16 1}}9{{substr $uuid 17 2}}-{{substr $uuid 21 12}}", - "url": {{ printf "%s?utm_source=json_feed" .Permalink | jsonify }}, - "title": {{ .Title | plainify | chomp | jsonify }}, - "summary": {{ .Summary | plainify | chomp | jsonify }}, - "date_published": {{ .PublishDate.Format "2006-01-02T15:04:05Z07:00" | jsonify }}{{ if ne .Date .Lastmod }}, - "date_modified" : {{ .Lastmod.Format "2006-01-02T15:04:05Z07:00" | jsonify }}{{ end }} - } - {{- end }} - ] -} diff --git a/layouts/_default/list.jsonfeed.json b/layouts/_default/list.jsonfeed.json new file mode 100644 index 0000000..f6b89cc --- /dev/null +++ b/layouts/_default/list.jsonfeed.json @@ -0,0 +1,44 @@ +{{- $pctx := . -}} +{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}} + +{{- $pages := slice -}} +{{- if $.IsHome -}} + {{- $mainSections := site.Params.mainSections | default (slice "posts") }} + {{- $pages = where $pctx.RegularPages.ByDate.Reverse "Type" "in" $mainSections -}} +{{- else if $.IsSection -}} + {{- $pages = $pctx.RegularPages.ByDate.Reverse -}} +{{- else -}} + {{- $pages = $pctx.Pages -}} +{{- end -}} + +{{- $limit := site.Params.feedSize | default 25 -}} +{{- $pages = $pages | first $limit -}} + +{ + "version": "https://jsonfeed.org/version/1.1", + "title": {{ (partial "title.html" .) | htmlUnescape | jsonify }}, + "home_page_url": {{ printf "%s?utm_source=json_feed" site.BaseURL | absURL | jsonify }}, + {{ with .OutputFormats.Get "JSON" }}"feed_url": {{ .Permalink | absURL | jsonify }},{{ end }} + {{ with site.Params.description}}"description": {{ site.Params.description | jsonify }},{{ end }} + {{- $logo := resources.Get (site.Params.assets.logo | default "/img/open-graph-logo.png") }}{{ $logo = $logo.Resize "96x96" }} + "icon": {{ $logo.Permalink | jsonify }}, + "favicon": {{ $logo.Permalink | jsonify }}, + {{ with site.Author.name }}"authors": [ + { + "name": {{ . | jsonify }}{{ with site.Author.twitter }}, + "url": {{ (printf "https://twitter.com/%s" . ) | jsonify }}{{ end }} + } + ],{{ end }} + {{ with site.LanguageCode }}"language" : "{{ . }}",{{ end }}{{ $feedsize := site.Params.feedSize | default 25 }} + "items": [{{ range $i, $ := $pages }}{{ if $i }},{{ end }} + { + "id": {{ $uuid := sha1 (.Permalink | absURL)}}"{{substr $uuid 0 8}}-{{substr $uuid 8 4}}-5{{substr $uuid 13 3}}-{{substr $uuid 16 1}}9{{substr $uuid 17 2}}-{{substr $uuid 21 12}}", + "url": {{ printf "%s?utm_source=json_feed" .Permalink | jsonify }}, + "title": {{ .Title | plainify | chomp | jsonify }}, + "summary": {{ .Summary | plainify | chomp | jsonify }}, + "date_published": {{ .PublishDate.Format "2006-01-02T15:04:05Z07:00" | jsonify }}{{ if ne .Date .Lastmod }}, + "date_modified" : {{ .Lastmod.Format "2006-01-02T15:04:05Z07:00" | jsonify }}{{ end }} + } + {{- end }} + ] +} -- cgit v1.2.3