aboutsummaryrefslogtreecommitdiffhomepage
path: root/hugolib
diff options
context:
space:
mode:
authorspf13 <[email protected]>2013-10-31 09:49:29 -0400
committerspf13 <[email protected]>2013-10-31 09:49:29 -0400
commita7dae30a8f9373d8536c2e7a3e8bdaa79735719c (patch)
tree2348a0c867b52c8734e0b3803d4c2c8d60129d25 /hugolib
parentbc7c9221f350215aabbd0ccfa83dcf10564a3a53 (diff)
downloadhugo-a7dae30a8f9373d8536c2e7a3e8bdaa79735719c.tar.gz
hugo-a7dae30a8f9373d8536c2e7a3e8bdaa79735719c.zip
More work on indexes
Diffstat (limited to 'hugolib')
-rw-r--r--hugolib/index.go25
-rw-r--r--hugolib/site.go3
2 files changed, 20 insertions, 8 deletions
diff --git a/hugolib/index.go b/hugolib/index.go
index 028f64a70..c3396b286 100644
--- a/hugolib/index.go
+++ b/hugolib/index.go
@@ -28,6 +28,7 @@ type IndexedPages []WeightedIndexEntry
func (p IndexedPages) Len() int { return len(p) }
func (p IndexedPages) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
func (p IndexedPages) Sort() { sort.Sort(p) }
+func (p IndexedPages) Count() int { return len(p) }
func (p IndexedPages) Less(i, j int) bool {
if p[i].Weight == p[j].Weight {
return p[i].Page.Date.Unix() > p[j].Page.Date.Unix()
@@ -59,17 +60,17 @@ func (i Index) Add(key string, w WeightedIndexEntry) {
i[key] = append(i[key], w)
}
-func (i Index) IndexArray() []IndexEntry {
+func (i Index) IndexArray() IndexEntries {
ies := make([]IndexEntry, len(i))
count := 0
for k, v := range i {
- ies[count] = IndexEntry{Name: k, Pages: v}
+ ies[count] = IndexEntry{Name: k, WeightedPages: v}
count++
}
return ies
}
-func (i Index) Alphabetical() []IndexEntry {
+func (i Index) Alphabetical() IndexEntries {
name := func(i1, i2 *IndexEntry) bool {
return i1.Name < i2.Name
}
@@ -79,9 +80,9 @@ func (i Index) Alphabetical() []IndexEntry {
return ia
}
-func (i Index) ByCount() []IndexEntry {
+func (i Index) ByCount() IndexEntries {
count := func(i1, i2 *IndexEntry) bool {
- return len(i1.Pages) < len(i2.Pages)
+ return len(i1.WeightedPages) > len(i2.WeightedPages)
}
ia := i.IndexArray()
@@ -90,10 +91,20 @@ func (i Index) ByCount() []IndexEntry {
}
type IndexEntry struct {
- Name string
- Pages IndexedPages
+ Name string
+ WeightedPages IndexedPages
}
+func (ie IndexEntry) Pages() []*Page {
+ return ie.WeightedPages.Pages()
+}
+
+func (ie IndexEntry) Count() int {
+ return len(ie.WeightedPages)
+}
+
+type IndexEntries []IndexEntry
+
type By func(i1, i2 *IndexEntry) bool
func (by By) Sort(indexEntrys []IndexEntry) {
diff --git a/hugolib/site.go b/hugolib/site.go
index dc4214f2b..eda44fb1c 100644
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -452,7 +452,8 @@ func (s *Site) RenderIndexesIndexes() (err error) {
n.Data["Singular"] = singular
n.Data["Plural"] = plural
n.Data["Index"] = s.Indexes[plural]
- n.Data["OrderedIndex"] = s.Info.Indexes[plural]
+ // keep the following just for legacy reasons
+ n.Data["OrderedIndex"] = s.Indexes[plural]
err := s.render(n, plural+"/index.html", layout)
if err != nil {