From 667e11c4ec3835d959aab1797647bd0a49869674 Mon Sep 17 00:00:00 2001 From: etienne Date: Tue, 21 Oct 2014 23:35:24 +0200 Subject: Init commit --- content/templates/terms.md | 160 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 content/templates/terms.md (limited to 'content/templates/terms.md') diff --git a/content/templates/terms.md b/content/templates/terms.md new file mode 100644 index 0000000..5c066a4 --- /dev/null +++ b/content/templates/terms.md @@ -0,0 +1,160 @@ +--- +aliases: +- /indexes/lists/ +- /doc/indexes/ +- /extras/indexes +date: 2014-05-21 +linktitle: Taxonomy Terms +menu: + main: + parent: layout +next: /templates/views +prev: /templates/homepage +title: Taxonomy Terms Template +weight: 60 +--- + +A unique template is needed to create a list of the terms for a given +taxonomy. This is different from the [list template](/templates/list/) +as that template is a list of content, where this is a list of meta data. + +## Which Template will be rendered? +Hugo uses a set of rules to figure out which template to use when +rendering a specific page. + +Hugo will use the following prioritized list. If a file isn’t present, +then the next one in the list will be used. This enables you to craft +specific layouts when you want to without creating more templates +than necessary. For most sites only the \_default file at the end of +the list will be needed. + +A Taxonomy Terms List will be rendered at /`PLURAL`/ + +* /layouts/taxonomy/`SINGLE`.terms.html +* /layouts/\_default/terms.html + +If that neither file is found in either the /layouts or /theme/layouts +directory than hugo will not render the taxonomy terms pages. It is also +common for people to render taxonomy terms lists on other pages such as +the homepage or the sidebar (such as a tag cloud) and not have a +dedicated page for the terms. + +## Variables + +Taxonomy Terms pages are of the type "node" and have all the [node +variables](/templates/variables/) and [site +variables](/templates/variables/) available to use in the templates. + +Taxonomy Terms pages will additionally have: + +* **.Data.Singular** The singular name of the taxonomy +* **.Data.Plural** The plural name of the taxonomy +* **.Data.Terms** The taxonomy itself +* **.Data.Terms.Alphabetical** The Terms alphabetized +* **.Data.Terms.ByCount** The Terms ordered by popularity + +## Example terms.html file + +List pages are of the type "node" and have all the [node +variables](/templates/variables/) and [site +variables](/templates/variables/) available to use in the templates. + +This content template is used for [spf13.com](http://spf13.com). +It makes use of [partial templates](/templates/partials). The list of indexes +templates cannot use a [content view](/templates/views) as they don't display the content, but +rather information about the content. + +This particular template lists all of the Tags used on +[spf13.com](http://spf13.com) and provides a count for the number of pieces of +content tagged with each tag. + +`.Data.Terms` is an map of terms ⇒ [contents] + + {{ partial "header.html" . }} + {{ partial "subheader.html" . }} + +
+
+

{{ .Title }}

+ +
    + {{ $data := .Data }} + {{ range $key, $value := .Data.Terms }} +
  • {{ $key }} {{ len $value }}
  • + {{ end }} +
+
+
+ + {{ partial "footer.html" }} + + +Another example listing the content for each term (ordered by Date) + + + {{ partial "header.html" . }} + {{ partial "subheader.html" . }} + +
+
+

{{ .Title }}

+ + {{ $data := .Data }} + {{ range $key,$value := .Data.Terms.ByCount }} +

{{ $value.Name }} {{ $value.Count }}

+
    + {{ range $value.Pages.ByDate }} +
  • + {{ .Title }} +
  • + {{ end }} +
+ {{ end }} +
+
+ + {{ partial "footer.html" }} + +## Ordering + +Hugo can order the meta data in two different ways. It can be ordered by the +number of content assigned to that key or alphabetically. + + +## Example indexes.html file (alphabetical) + + {{ partial "header.html" . }} + {{ partial "subheader.html" . }} + +
+
+

{{ .Title }}

+
    + {{ $data := .Data }} + {{ range $key, $value := .Data.Terms.Alphabetical }} +
  • {{ $value.Name }} {{ $value.Count }}
  • + {{ end }} +
+
+
+ {{ partial "footer.html" }} + +## Example indexes.html file (ordered) + + {{ partial "header.html" . }} + {{ partial "subheader.html" . }} + +
+
+

{{ .Title }}

+
    + {{ $data := .Data }} + {{ range $key, $value := .Data.Terms.ByCount }} +
  • {{ $value.Name }} {{ $value.Count }}
  • + {{ end }} +
+
+
+ + {{ partial "footer.html" }} + -- cgit v1.3