shithub: hugo

Download patch

ref: 8eca8f8aa08d5d95386c34979f653a5b5463c8c9
parent: e66ba5d2a7dd1a043a24bf86a271a5440b7b1385
author: Noah Campbell <[email protected]>
date: Tue Aug 13 06:46:05 EDT 2013

Detect missed index from front matter

--- /dev/null
+++ b/hugolib/indexing_test.go
@@ -1,0 +1,18 @@
+package hugolib
+
+import (
+	"testing"
+	"strings"
+)
+
+func TestSitePossibleIndexes(t *testing.T) {
+	site := new(Site)
+	page, _ := ReadFrom(strings.NewReader(PAGE_YAML_WITH_INDEXES_A), "path/to/page")
+	site.Pages = append(site.Pages, page)
+	indexes := site.possibleIndexes()
+	if !compareStringSlice(indexes, []string{"tags", "categories"}) {
+		t.Fatalf("possible indexes do not match [tags categories].  Got: %s", indexes)
+	}
+}
+
+
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -390,6 +390,26 @@
 	return
 }
 
+func (s *Site) possibleIndexes() (indexes []string) {
+	for _, p := range s.Pages {
+		for k, _ := range p.Params {
+			if !inStringArray(indexes, k) {
+				indexes = append(indexes, k)
+			}
+		}
+	}
+	return
+}
+
+func inStringArray(arr []string, el string) bool {
+	for _, v := range arr {
+		if v == el {
+			return true
+		}
+	}
+	return false
+}
+
 func (s *Site) RenderAliases() error {
 	for i, p := range s.Pages {
 		for _, a := range p.Aliases {