get-a-taxonomy-object.md - hugo - [fork] hugo port for 9front
(HTM) git clone https://git.drkhsh.at/hugo.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Submodules
(DIR) README
(DIR) LICENSE
---
get-a-taxonomy-object.md (1964B)
---
1 ---
2 _comment: Do not remove front matter.
3 ---
4
5 Before we can use a `Taxonomy` method, we need to capture a `Taxonomy` object.
6
7 ## Capture a Taxonomy object
8
9 Consider this site configuration:
10
11 {{< code-toggle file=hugo >}}
12 [taxonomies]
13 genre = 'genres'
14 author = 'authors'
15 {{< /code-toggle >}}
16
17 And this content structure:
18
19 ```text
20 content/
21 ├── books/
22 │ ├── and-then-there-were-none.md --> genres: suspense
23 │ ├── death-on-the-nile.md --> genres: suspense
24 │ └── jamaica-inn.md --> genres: suspense, romance
25 │ └── pride-and-prejudice.md --> genres: romance
26 └── _index.md
27 ```
28
29 To capture the "genres" `Taxonomy` object from within any template, use the [`Taxonomies`] method on a `Site` object.
30
31 ```go-html-template
32 {{ $taxonomyObject := .Site.Taxonomies.genres }}
33 ```
34
35 To capture the "genres" `Taxonomy` object when rendering its page with a taxonomy template, use the [`Terms`] method on the page's [`Data`] object:
36
37 ```go-html-template {file="layouts/taxonomy.html"}
38 {{ $taxonomyObject := .Data.Terms }}
39 ```
40
41 To inspect the data structure:
42
43 ```go-html-template
44 <pre>{{ debug.Dump $taxonomyObject }}</pre>
45 ```
46
47 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:
48
49 ```go-html-template
50 {{ range $term, $weightedPages := $taxonomyObject }}
51 <h2><a href="{{ .Page.RelPermalink }}">{{ .Page.LinkTitle }}</a></h2>
52 <ul>
53 {{ range $weightedPages }}
54 <li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
55 {{ end }}
56 </ul>
57 {{ end }}
58 ```
59
60 In the example above, the first anchor element is a link to the term page.
61
62 [`Alphabetical`]: /methods/taxonomy/alphabetical/
63 [`ByCount`]: /methods/taxonomy/bycount/
64
65 [`data`]: /methods/page/data/
66 [`terms`]: /methods/page/data/#in-a-taxonomy-template
67 [`taxonomies`]: /methods/site/taxonomies/