Detect missed index from front matter - hugo - [fork] hugo port for 9front
HTML git clone git@git.drkhsh.at/hugo.git
DIR Log
DIR Files
DIR Refs
DIR Submodules
DIR README
DIR LICENSE
---
DIR commit 8eca8f8aa08d5d95386c34979f653a5b5463c8c9
DIR parent e66ba5d2a7dd1a043a24bf86a271a5440b7b1385
HTML Author: Noah Campbell <noahcampbell@gmail.com>
Date: Tue, 13 Aug 2013 10:46:05 -0700
Detect missed index from front matter
Diffstat:
A hugolib/indexing_test.go | 18 ++++++++++++++++++
M hugolib/site.go | 20 ++++++++++++++++++++
2 files changed, 38 insertions(+), 0 deletions(-)
---
DIR diff --git a/hugolib/indexing_test.go 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)
+ }
+}
+
+
DIR diff --git 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 {