Related
Syntax
PAGES.Related PAGE
PAGES.Related OPTIONS
Returns
page.Pages
Based on front matter, Hugo uses several factors to identify content related to the given page. Use the default related content configuration, or tune the results to the desired indices and parameters. See details.
The argument passed to the Related
method may be a Page
or an options map. For example, to pass the current page:
layouts/_default/single.html
{{ with .Site.RegularPages.Related . | first 5 }}
<p>Related pages:</p>
<ul>
{{ range . }}
<li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
{{ end }}
</ul>
{{ end }}
To pass an options map:
layouts/_default/single.html
{{ $opts := dict
"document" .
"indices" (slice "tags" "keywords")
}}
{{ with .Site.RegularPages.Related $opts | first 5 }}
<p>Related pages:</p>
<ul>
{{ range . }}
<li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
{{ end }}
</ul>
{{ end }}
Options
- indices
- (
slice
) The indices to search within. - document
- (
page
) The page for which to find related content. Required when specifying an options map. - namedSlices
- (
slice
) The keywords to search for, expressed as a slice ofKeyValues
using thekeyVals
function.
- fragments
- (
slice
) A list of special keywords that is used for indices configured as type “fragments”. This will match the fragment identifiers of the documents.
A contrived example using all of the above:
{{ $page := . }}
{{ $opts := dict
"indices" (slice "tags" "keywords")
"document" $page
"namedSlices" (slice (keyVals "tags" "hugo" "rocks") (keyVals "date" $page.Date))
"fragments" (slice "heading-1" "heading-2")
}}