shithub: hugo

Download patch

ref: 4bb5e326dbf0f732dd5db45a47fa25999806111e
parent: 1b7f18e39172429545198b3559dcc64bbfb7aa9c
author: spf13 <[email protected]>
date: Fri Sep 5 05:29:01 EDT 2014

Taxonomies can now be provided as a single string value if there is only one in frontmatter (tag = "val" vs tag = ["val"])

--- a/hugolib/page_taxonomy_test.go
+++ b/hugolib/page_taxonomy_test.go
@@ -20,6 +20,12 @@
 ---
 YAML frontmatter with tags and categories taxonomy.`
 
+var PAGE_YAML_WITH_TAXONOMIES_C = `---
+tags: 'e'
+categories: 'd'
+---
+YAML frontmatter with tags and categories taxonomy.`
+
 var PAGE_JSON_WITH_TAXONOMIES = `{
   "categories": "d",
   "tags": [
@@ -41,6 +47,7 @@
 		PAGE_JSON_WITH_TAXONOMIES,
 		PAGE_YAML_WITH_TAXONOMIES_A,
 		PAGE_YAML_WITH_TAXONOMIES_B,
+		PAGE_YAML_WITH_TAXONOMIES_C,
 	} {
 
 		p, _ := NewPage("page/with/taxonomy")
@@ -50,11 +57,17 @@
 		}
 
 		param := p.GetParam("tags")
-		params := param.([]string)
 
-		expected := []string{"a", "b", "c"}
-		if !compareStringSlice(params, expected) {
-			t.Errorf("Expected %s: got: %s", expected, params)
+		if params, ok := param.([]string); ok {
+			expected := []string{"a", "b", "c"}
+			if !compareStringSlice(params, expected) {
+				t.Errorf("Expected %s: got: %s", expected, params)
+			}
+		} else if params, ok := param.(string); ok {
+			expected := "e"
+			if params != expected {
+				t.Errorf("Expected %s: got: %s", expected, params)
+			}
 		}
 
 		param = p.GetParam("categories")
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -535,13 +535,14 @@
 			}
 
 			if vals != nil {
-				v, ok := vals.([]string)
-				if ok {
+				if v, ok := vals.([]string); ok {
 					for _, idx := range v {
 						x := WeightedPage{weight.(int), p}
-
 						s.Taxonomies[plural].Add(idx, x)
 					}
+				} else if v, ok := vals.(string); ok {
+					x := WeightedPage{weight.(int), p}
+					s.Taxonomies[plural].Add(v, x)
 				} else {
 					jww.ERROR.Printf("Invalid %s in %s\n", plural, p.File.FileName)
 				}
--- a/hugolib/site_test.go
+++ b/hugolib/site_test.go
@@ -560,7 +560,7 @@
 Front Matter with weighted tags and categories`)
 
 var PAGE_WITH_WEIGHTED_TAXONOMIES_1 = []byte(`+++
-tags = [ "a" ]
+tags = "a"
 tags_weight = 33
 title = "bar"
 categories = [ "d", "e" ]