2013-10-31 09:51:13 -04:00
|
|
|
|
---
|
2014-05-29 18:42:05 -04:00
|
|
|
|
aliases:
|
|
|
|
|
- /indexes/displaying/
|
|
|
|
|
date: 2013-07-01
|
|
|
|
|
linktitle: Displaying
|
2014-04-23 03:00:11 -04:00
|
|
|
|
menu:
|
|
|
|
|
main:
|
2014-05-29 18:42:05 -04:00
|
|
|
|
parent: taxonomy
|
|
|
|
|
next: /taxonomies/templates
|
|
|
|
|
prev: /taxonomies/usage
|
|
|
|
|
title: Displaying Taxonomies
|
|
|
|
|
weight: 20
|
2013-10-31 09:51:13 -04:00
|
|
|
|
---
|
2014-01-10 21:19:19 -05:00
|
|
|
|
|
2014-05-27 18:32:57 -04:00
|
|
|
|
There are four common ways you can display the data in your
|
|
|
|
|
taxonomies in addition to the automatic taxonomy pages created by hugo
|
2014-10-07 19:52:58 -04:00
|
|
|
|
using the [list templates](/templates/list):
|
2014-05-27 18:32:57 -04:00
|
|
|
|
|
2014-10-07 19:52:58 -04:00
|
|
|
|
1. For a given piece of content, you can list the terms attached
|
|
|
|
|
2. For a given piece of content, you can list other content with the same
|
2014-05-27 18:32:57 -04:00
|
|
|
|
term
|
|
|
|
|
3. You can list all terms for a taxonomy
|
|
|
|
|
4. You can list all taxonomies (with their terms)
|
|
|
|
|
|
|
|
|
|
## 1. Displaying taxonomy terms assigned to this content
|
2013-10-31 09:51:13 -04:00
|
|
|
|
|
2014-10-07 19:52:58 -04:00
|
|
|
|
Within your content templates, you may wish to display
|
2014-05-27 18:32:57 -04:00
|
|
|
|
the taxonomies that that piece of content is assigned to.
|
2013-10-31 09:51:13 -04:00
|
|
|
|
|
2014-10-07 19:52:58 -04:00
|
|
|
|
Because we are leveraging the front matter system to
|
|
|
|
|
define taxonomies for content, the taxonomies assigned to
|
|
|
|
|
each content piece are located in the usual place
|
|
|
|
|
(.Params.`plural`).
|
2013-10-31 09:51:13 -04:00
|
|
|
|
|
2014-01-10 21:19:19 -05:00
|
|
|
|
### Example
|
2013-10-31 09:51:13 -04:00
|
|
|
|
|
2014-05-15 09:57:36 -04:00
|
|
|
|
<ul id="tags">
|
|
|
|
|
{{ range .Params.tags }}
|
|
|
|
|
<li><a href="tags/{{ . | urlize }}">{{ . }}</a> </li>
|
|
|
|
|
{{ end }}
|
|
|
|
|
</ul>
|
2013-10-31 09:51:13 -04:00
|
|
|
|
|
2014-05-27 18:32:57 -04:00
|
|
|
|
## 2. Listing content with the same taxonomy term
|
|
|
|
|
|
2014-10-07 19:52:58 -04:00
|
|
|
|
First, you may be asking why you would use this. If you are using a
|
2014-05-27 18:32:57 -04:00
|
|
|
|
taxonomy for something like a series of posts, this is exactly how you
|
|
|
|
|
would do it. It’s also an quick and dirty way to show some related
|
|
|
|
|
content.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Example
|
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
{{ range .Site.Taxonomies.series.golang }}
|
|
|
|
|
<li><a href="{{ .Url }}">{{ .Name }}</a></li>
|
|
|
|
|
{{ end }}
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
## 3. Listing all content in a given taxonomy
|
|
|
|
|
|
|
|
|
|
This would be very useful in a sidebar as “featured content”. You could
|
|
|
|
|
even have different sections of “featured content” by assigning
|
|
|
|
|
different terms to the content.
|
|
|
|
|
|
|
|
|
|
### Example
|
|
|
|
|
|
|
|
|
|
<section id="menu">
|
|
|
|
|
<ul>
|
|
|
|
|
{{ range $key, $taxonomy := .Site.Taxonomies.featured }}
|
|
|
|
|
<li> {{ $key }} </li>
|
|
|
|
|
<ul>
|
|
|
|
|
{{ range $taxonomy.Pages }}
|
|
|
|
|
<li hugo-nav="{{ .RelPermalink}}"><a href="{{ .Permalink}}"> {{ .LinkTitle }} </a> </li>
|
|
|
|
|
{{ end }}
|
|
|
|
|
</ul>
|
|
|
|
|
{{ end }}
|
|
|
|
|
</ul>
|
|
|
|
|
</section>
|
|
|
|
|
|
2013-10-31 09:51:13 -04:00
|
|
|
|
|
2014-05-27 18:32:57 -04:00
|
|
|
|
## 4. Rendering a Site's Taxonomies
|
|
|
|
|
|
2014-10-07 19:52:58 -04:00
|
|
|
|
If you wish to display the list of all keys for an taxonomy, you can find retrieve
|
2014-01-10 21:19:19 -05:00
|
|
|
|
them from the `.Site` variable which is available on every page.
|
2013-10-31 09:51:13 -04:00
|
|
|
|
|
|
|
|
|
This may take the form of a tag cloud, a menu or simply a list.
|
|
|
|
|
|
|
|
|
|
The following example displays all tag keys:
|
|
|
|
|
|
2014-01-10 21:19:19 -05:00
|
|
|
|
### Example
|
2013-10-31 09:51:13 -04:00
|
|
|
|
|
2014-05-15 09:57:36 -04:00
|
|
|
|
<ul id="all-tags">
|
2014-08-29 23:39:55 -04:00
|
|
|
|
{{ range $name, $taxonomy := .Site.Taxonomies.tags }}
|
2014-10-07 19:52:58 -04:00
|
|
|
|
<li><a href="/tags/{{ $name | urlize }}">{{ $name }}</a></li>
|
2014-05-15 09:57:36 -04:00
|
|
|
|
{{ end }}
|
|
|
|
|
</ul>
|
2013-10-31 09:51:13 -04:00
|
|
|
|
|
2014-05-27 18:32:57 -04:00
|
|
|
|
### Complete Example
|
|
|
|
|
This example will list all taxonomies, each of their keys and all the content assigned to each key.
|
2013-10-31 09:51:13 -04:00
|
|
|
|
|
2014-05-27 18:32:57 -04:00
|
|
|
|
<section>
|
2014-05-15 09:57:36 -04:00
|
|
|
|
<ul>
|
2014-05-27 18:32:57 -04:00
|
|
|
|
{{ range $taxonomyname, $taxonomy := .Site.Taxonomies }}
|
2014-10-07 19:52:58 -04:00
|
|
|
|
<li><a href="/{{ $taxonomyname | urlize }}">{{ $taxonomyname }}</a>
|
2014-05-27 18:32:57 -04:00
|
|
|
|
<ul>
|
|
|
|
|
{{ range $key, $value := $taxonomy }}
|
2014-05-15 09:57:36 -04:00
|
|
|
|
<li> {{ $key }} </li>
|
|
|
|
|
<ul>
|
|
|
|
|
{{ range $value.Pages }}
|
|
|
|
|
<li hugo-nav="{{ .RelPermalink}}"><a href="{{ .Permalink}}"> {{ .LinkTitle }} </a> </li>
|
|
|
|
|
{{ end }}
|
|
|
|
|
</ul>
|
|
|
|
|
{{ end }}
|
|
|
|
|
</ul>
|
2014-10-07 19:52:58 -04:00
|
|
|
|
</li>
|
2014-05-15 09:57:36 -04:00
|
|
|
|
{{ end }}
|
|
|
|
|
</ul>
|
|
|
|
|
</section>
|
2013-10-31 09:51:13 -04:00
|
|
|
|
|