diff --git a/layouts/_default/taxonomy.html b/layouts/_default/taxonomy.html
index f2f079a..86b774b 100644
--- a/layouts/_default/taxonomy.html
+++ b/layouts/_default/taxonomy.html
@@ -13,18 +13,8 @@
- {{ $terms := index .Site.Taxonomies .Data.Plural }}
- {{ range $term, $pages := $terms }}
- {{ if ne $term $.Title }}
- {{ with $.Site.GetPage (printf "/%s/%s" $.Data.Plural ($term | urlize)) }}
-
- {{ .Title }}
-
- {{ end }}
- {{ end }}
- {{ end }}
+
+ {{ partial "taxonomy-cloud" (dict "taxonomy" .Data.Singular "Site" .Site "page" .Page) }}
diff --git a/layouts/index.html b/layouts/index.html
index ce4e909..eb3e9a5 100644
--- a/layouts/index.html
+++ b/layouts/index.html
@@ -19,14 +19,8 @@
-
- {{ $topics := .Site.Taxonomies.topics }}
- {{ range $tag, $pages := $topics }}
-
- {{ $tag }}
-
- {{ end }}
+
+ {{ partial "taxonomy-cloud" (dict "taxonomy" "topics" "Site" .Site) }}
diff --git a/layouts/partials/taxonomy-cloud.html b/layouts/partials/taxonomy-cloud.html
new file mode 100644
index 0000000..128ae6c
--- /dev/null
+++ b/layouts/partials/taxonomy-cloud.html
@@ -0,0 +1,16 @@
+{{ $taxonomy := .taxonomy }}
+{{ range $term, $pages := index .Site.Taxonomies $taxonomy }}
+{{ $termPage := $.Site.GetPage (printf "/%s/%s" $taxonomy $term) }}
+
+ {{ $term }}
+
+{{ end }}