{{- $len := sub (len (.Pages.GroupBy "Section")) 1 -}}
[{{- range $item, $el := .Pages.GroupBy "Section" -}}
{{- range $i, $e := .Pages -}}
{{- if and (not .Params.ignoreSearch) (ne $e.Type "json") -}}
  {
    "section": "",
    "url": "{{ $e.Permalink }}",
    "title": "{{ with $e.Params.bannertext }}{{htmlEscape .}}{{else}}{{htmlEscape $e.Title}}{{end}}",
    "description": "{{ htmlEscape .Description}}",
    "searchKeyword": "{{ htmlEscape .Params.searchKeyword}}",
    "content": {{$e.Plain | jsonify}}
  },
{{- end -}}

{{- if .Section -}}
{{- $section := (where site.Pages "Section" .Section) | intersect (where site.Pages ".Title" "!=" .Title) -}}
{{- $sectionLen := len (where site.Pages "Section" .Section) -}}
{{- $sectionLenTotal := sub $sectionLen 2 -}}

{{- range $index, $page := $section -}}
{{- if and (not .Params.ignoreSearch) (ne $page.Type "json") -}}
  {
    "section": "{{$page.Section | humanize}}",
    "url": "{{ $page.Permalink }}",
    "title": "{{ with $page.Params.bannertext }}{{htmlEscape .}}{{else}}{{htmlEscape $page.Title}}{{end}}",
    "description": "{{ htmlEscape .Description}}",
    "searchKeyword": "{{ htmlEscape .Params.searchKeyword}}",
    "content": {{$page.Plain | jsonify}}
  }{{- if eq $item $len -}}{{- if ne $index $sectionLenTotal -}},{{- end -}}{{- else -}},{{- end -}}
{{- end -}}
{{- end -}}

{{- end -}}

{{- end -}}
{{- end -}}]