From 8eca8f8aa08d5d95386c34979f653a5b5463c8c9 Mon Sep 17 00:00:00 2001 From: Noah Campbell Date: Tue, 13 Aug 2013 10:46:05 -0700 Subject: [PATCH] Detect missed index from front matter --- hugolib/indexing_test.go | 18 ++++++++++++++++++ hugolib/site.go | 20 ++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 hugolib/indexing_test.go diff --git a/hugolib/indexing_test.go b/hugolib/indexing_test.go new file mode 100644 index 000000000..4d7d04f31 --- /dev/null +++ b/hugolib/indexing_test.go @@ -0,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) + } +} + + diff --git a/hugolib/site.go b/hugolib/site.go index 966208f92..5011cf6b2 100644 --- a/hugolib/site.go +++ b/hugolib/site.go @@ -390,6 +390,26 @@ func (s *Site) BuildSiteMeta() (err error) { 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 {