aboutsummaryrefslogtreecommitdiffstats
path: root/site/site.go
diff options
context:
space:
mode:
Diffstat (limited to 'site/site.go')
-rw-r--r--site/site.go25
1 files changed, 20 insertions, 5 deletions
diff --git a/site/site.go b/site/site.go
index 136c100..b69a4af 100644
--- a/site/site.go
+++ b/site/site.go
@@ -10,6 +10,7 @@ import (
"log"
"path"
"sort"
+ "strings"
)
type Site struct {
@@ -19,11 +20,12 @@ type Site struct {
Posts post.Posts
// all archives are optional based on presence of template
- Archive *archive.ListArchive
- Home *archive.ListArchive
- Rss *archive.ListArchive
- Paged *archive.PagedArchives
- Tagged *archive.TagArchives
+ Archive *archive.ListArchive
+ Home *archive.ListArchive
+ Rss *archive.ListArchive
+ Paged *archive.PagedArchives
+ Tagged *archive.TagArchives
+ ListArchives []*archive.ListArchive
}
/*
@@ -55,6 +57,14 @@ func (s *Site) Read() {
s.Home.Template = "home"
s.Home.Site = s
}
+
+ // generic list templates
+ for _, t := range render.TemplateNames() {
+ if strings.HasSuffix(t, ".list") {
+ la := archive.NewGenericListArchive(s.Posts, t, strings.TrimSuffix(t, ".list"))
+ s.ListArchives = append(s.ListArchives, la)
+ }
+ }
}
/*
@@ -141,6 +151,11 @@ func (s *Site) WriteArchives() {
render.Write(t)
}
}
+ for _, t := range s.ListArchives {
+ t.Site = s
+ render.Write(t)
+ }
+
}
func (s *Site) WritePosts() {