hugo/docs/content/en/functions/collections/After.md
Bjørn Erik Pedersen 5fd1e74903
Merge commit '9b0050e9aabe4be65c78ccf292a348f309d50ccd' as 'docs'
```
git subtree add --prefix=docs/ https://github.com/gohugoio/hugoDocs.git master --squash
```

Closes #11925
2024-01-27 10:48:57 +01:00

2.1 KiB
Raw Blame History

title description categories keywords action aliases
collections.After Slices an array to the items after the Nth item.
aliases related returnType signatures
after
functions/collections/First
functions/collections/Last
any
collections.After INDEX COLLECTION
/functions/after

The following shows after being used in conjunction with the slicefunction:

{{ $data := slice "one" "two" "three" "four" }}
<ul>
  {{ range after 2 $data }}
    <li>{{ . }}</li>
  {{ end }}
</ul>

The template above is rendered to:

<ul>
  <li>three</li>
  <li>four</li>
</ul>

Example of after with first: 2nd4th most recent articles

You can use after in combination with the first function and Hugo's powerful sorting methods. Let's assume you have a list page at example.com/articles. You have 10 articles, but you want your templating for the list/section page to show only two rows:

  1. The top row is titled "Featured" and shows only the most recently published article (i.e. by publishdate in the content files' front matter).
  2. The second row is titled "Recent Articles" and shows only the 2nd- to 4th-most recently published articles.

{{< code file=layouts/section/articles.html >}} {{ define "main" }}

Featured Article

{{ range first 1 .Pages.ByPublishDate.Reverse }}

{{ .Title }}

{{ .Description }}

{{ end }}

Recent Articles

{{ range first 3 (after 1 .Pages.ByPublishDate.Reverse) }}

{{ .Title }}

{{ .Description }}

{{ end }}
{{ end }} {{< /code >}}