{{- /* Generate the search index. */ -}} {{- $index := slice -}} {{- $pages := site.RegularPages -}} {{- /* Add the index page of docs separately since it's not in RegularPages above. */ -}} {{- $pages := $pages | union (where (where site.Pages "Kind" "section") "Type" "docs") -}} {{- /* Add author pages to index so their bios can be searched. Hide empty `/authors/` node. */ -}} {{- $pages := $pages | union (where (where site.Pages "Section" "authors") "Params.name" "!=" nil) -}} {{- range $pages -}} {{- /* Do not index drafts or private pages. */ -}} {{- if and (not .Draft) (not .Params.private) -}} {{- /* Generate page description. */ -}} {{- $desc := "" -}} {{- if .Params.summary -}} {{- $desc = .Params.summary -}} {{- else if .Params.abstract -}} {{- $desc = .Params.abstract -}} {{- else -}} {{- $desc = .Summary -}} {{- end -}} {{- $authors := .Params.authors -}} {{- $title := .Title}} {{- $rel_permalink := .RelPermalink -}} {{- $permalink := .Permalink -}} {{/* Correct the title and URL for author profile pages. */}} {{- if eq .Section "authors" -}} {{- $title = .Params.name -}} {{- $username := path.Base (path.Split .Path).Dir -}} {{- with site.GetPage (printf "/authors/%s" $username) -}} {{- $permalink = .Permalink -}} {{- $rel_permalink = .RelPermalink -}} {{- end -}} {{- else -}} {{/* Include a user's display name rather than username where possible. */}} {{- if .Params.authors -}} {{- $authorLen := len .Params.authors -}} {{- if gt $authorLen 0 -}} {{- $authors = slice -}} {{- range $k, $v := .Params.authors -}} {{- $person_page_path := (printf "/authors/%s" (urlize $v)) -}} {{- $person_page := site.GetPage $person_page_path -}} {{- if and $person_page $person_page.File -}} {{- $person := $person_page.Params -}} {{- $authors = $authors | append $person.name -}} {{- else -}} {{- $authors = $authors | append ($v | plainify) -}} {{- end -}} {{- end -}} {{- end -}} {{- end -}} {{- end -}} {{- /* Add page to index. */ -}} {{- $index = $index | append (dict "objectID" .File.UniqueID "date" .Date.UTC.Unix "publishdate" .PublishDate "lastmod" .Lastmod.UTC.Unix "expirydate" .ExpiryDate.UTC.Unix "lang" .Lang "permalink" $permalink "relpermalink" $rel_permalink "title" $title "summary" (plainify $desc) "content" .Plain "authors" $authors "kind" .Kind "type" .Type "section" .Section "tags" .Params.Tags "categories" .Params.Categories) -}} {{- end -}} {{- end -}} {{- $index | jsonify -}}