HUGO
News Docs Themes Community GitHub

Count

Returns the number of number of weighted pages to which the given term has been assigned.

Syntax

TAXONOMY.Count TERM

Returns

int

The Count method on a Taxonomy object returns the number of number of weighted pages to which the given term has been assigned.

Before we can use a Taxonomy method, we need to capture a Taxonomy object.

Capture a Taxonomy object

Consider this site configuration:

taxonomies:
  author: authors
  genre: genres
[taxonomies]
  author = 'authors'
  genre = 'genres'
{
   "taxonomies": {
      "author": "authors",
      "genre": "genres"
   }
}

And this content structure:

content/
├── books/
│   ├── and-then-there-were-none.md --> genres: suspense
│   ├── death-on-the-nile.md        --> genres: suspense
│   └── jamaica-inn.md              --> genres: suspense, romance
│   └── pride-and-prejudice.md      --> genres: romance
└── _index.md

To capture the “genres” Taxonomy object from within any template, use the Taxonomies method on a Site object.

{{ $taxonomyObject := .Site.Taxonomies.genres }}

To capture the “genres” Taxonomy object when rendering its page with a taxonomy template, use the Terms method on the page’s Data object:

layouts/_default/taxonomy.html
{{ $taxonomyObject := .Data.Terms }}

To inspect the data structure:

<pre>{{ debug.Dump $taxonomyObject }}</pre>

Although the Alphabetical and ByCount methods provide a better data structure for ranging through the taxonomy, you can render the weighted pages by term directly from the Taxonomy object:

{{ range $term, $weightedPages := $taxonomyObject }}
  <h2><a href="{{ .Page.RelPermalink }}">{{ .Page.LinkTitle }}</a></h2>
  <ul>
    {{ range $weightedPages }}
      <li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
    {{ end }}
  </ul>
{{ end }}

In the example above, the first anchor element is a link to the term page.

Count the weighted pages

Now that we have captured the “genres” Taxonomy object, let’s count the number of weighted pages to which the “suspense” term has been assigned:

{{ $taxonomyObject.Count "suspense" }} → 3