shithub: hugo

Download patch

ref: 6e27239485ffd83b33b743fef53efffd63f0826c
parent: ec02fa4bddaf07d392671497c31c8136763d78f7
parent: ca5a94a98866a664fb68be06b609537a619a19ea
author: spf13 <[email protected]>
date: Tue Aug 13 06:47:58 EDT 2013

Merge branch 'master' of github.com:spf13/hugo

--- a/hugolib/helpers.go
+++ b/hugolib/helpers.go
@@ -27,7 +27,7 @@
 	"time"
 )
 
-var sanitizeRegexp = regexp.MustCompile("[^a-zA-Z0-9/_-]")
+var sanitizeRegexp = regexp.MustCompile("[^a-zA-Z0-9./_-]")
 
 // TODO: Make these wrappers private
 // Wrapper around Fprintf taking verbose flag in account.
--- /dev/null
+++ b/hugolib/page_index_test.go
@@ -1,0 +1,79 @@
+package hugolib
+
+import (
+	"strings"
+	"testing"
+)
+
+var PAGE_YAML_WITH_INDEXES_A = `---
+tags: ['a', 'b', 'c']
+categories: 'd'
+---
+YAML frontmatter with tags and categories index.`
+
+var PAGE_YAML_WITH_INDEXES_B = `---
+tags: 
+ - "a"
+ - "b"
+ - "c"
+categories: 'd'
+---
+YAML frontmatter with tags and categories index.`
+
+var PAGE_JSON_WITH_INDEXES = `{
+  "categories": "d",
+  "tags": [
+    "a", 
+    "b", 
+    "c"
+  ]
+}
+JSON Front Matter with tags and categories`
+
+var PAGE_TOML_WITH_INDEXES = `+++
+tags = [ "a", "b", "c" ]
+categories = "d"
++++
+TOML Front Matter with tags and categories`
+
+func TestParseIndexes(t *testing.T) {
+	for _, test := range []string{PAGE_TOML_WITH_INDEXES,
+		PAGE_JSON_WITH_INDEXES,
+		PAGE_YAML_WITH_INDEXES_A,
+		PAGE_YAML_WITH_INDEXES_B,
+	} {
+		p, err := ReadFrom(strings.NewReader(test), "page/with/index")
+		if err != nil {
+			t.Fatalf("Failed parsing page: %s", err)
+		}
+
+		param := p.GetParam("tags")
+		params := param.([]string)
+
+		expected := []string{"a", "b", "c"}
+		if !compareStringSlice(params, expected) {
+			t.Errorf("Expected %s: got: %s", expected, params)
+		}
+
+		param = p.GetParam("categories")
+		singleparam := param.(string)
+
+		if singleparam != "d" {
+			t.Fatalf("Expected: d, got: %s", singleparam)
+		}
+	}
+}
+
+func compareStringSlice(a, b []string) bool {
+	if len(a) != len(b) {
+		return false
+	}
+
+	for i, v := range a {
+		if b[i] != v {
+			return false
+		}
+	}
+
+	return true
+}