writing indexes under more configuration conditions

This commit is contained in:
spf13 2014-04-07 23:29:35 -04:00
parent ad34be9d77
commit af1acfbce7
2 changed files with 45 additions and 44 deletions

View file

@ -146,6 +146,8 @@ func InitializeConfig() {
if VerboseLog { if VerboseLog {
jww.SetLogThreshold(jww.LevelDebug) jww.SetLogThreshold(jww.LevelDebug)
} }
jww.INFO.Println("Using config file:", viper.ConfigFileUsed())
} }
func build(watches ...bool) { func build(watches ...bool) {

View file

@ -302,7 +302,10 @@ func (s *Site) BuildSiteMeta() (err error) {
s.Indexes = make(IndexList) s.Indexes = make(IndexList)
s.Sections = make(Index) s.Sections = make(Index)
for _, plural := range viper.GetStringMapString("Indexes") { indexes := viper.GetStringMapString("Indexes")
jww.INFO.Printf("found indexes: %#v\n", indexes)
for _, plural := range indexes {
s.Indexes[plural] = make(Index) s.Indexes[plural] = make(Index)
for _, p := range s.Pages { for _, p := range s.Pages {
vals := p.GetParam(plural) vals := p.GetParam(plural)
@ -421,37 +424,35 @@ func (s *Site) RenderPages() (err error) {
func (s *Site) RenderIndexes() (err error) { func (s *Site) RenderIndexes() (err error) {
var wg sync.WaitGroup var wg sync.WaitGroup
indexes, ok := viper.Get("Indexes").(map[string]string) indexes := viper.GetStringMapString("Indexes")
if ok { for sing, pl := range indexes {
for sing, pl := range indexes { for key, oo := range s.Indexes[pl] {
for key, oo := range s.Indexes[pl] { wg.Add(1)
wg.Add(1) go func(k string, o WeightedPages, singular string, plural string) (err error) {
go func(k string, o WeightedPages, singular string, plural string) (err error) { defer wg.Done()
defer wg.Done() base := plural + "/" + k
base := plural + "/" + k n := s.NewNode()
n := s.NewNode() n.Title = strings.Title(k)
n.Title = strings.Title(k) s.setUrls(n, base)
s.setUrls(n, base) n.Date = o[0].Page.Date
n.Date = o[0].Page.Date n.Data[singular] = o
n.Data[singular] = o n.Data["Pages"] = o.Pages()
n.Data["Pages"] = o.Pages() layout := "indexes/" + singular + ".html"
layout := "indexes/" + singular + ".html" err = s.render(n, base+".html", layout)
err = s.render(n, base+".html", layout) if err != nil {
return err
}
if a := s.Tmpl.Lookup("rss.xml"); a != nil {
// XML Feed
s.setUrls(n, base+".xml")
err := s.render(n, base+".xml", "rss.xml")
if err != nil { if err != nil {
return err return err
} }
}
if a := s.Tmpl.Lookup("rss.xml"); a != nil { return
// XML Feed }(key, oo, sing, pl)
s.setUrls(n, base+".xml")
err := s.render(n, base+".xml", "rss.xml")
if err != nil {
return err
}
}
return
}(key, oo, sing, pl)
}
} }
} }
wg.Wait() wg.Wait()
@ -462,22 +463,20 @@ func (s *Site) RenderIndexesIndexes() (err error) {
layout := "indexes/indexes.html" layout := "indexes/indexes.html"
if s.Tmpl.Lookup(layout) != nil { if s.Tmpl.Lookup(layout) != nil {
indexes, ok := viper.Get("Indexes").(map[string]string) indexes := viper.GetStringMapString("Indexes")
if ok { for singular, plural := range indexes {
for singular, plural := range indexes { n := s.NewNode()
n := s.NewNode() n.Title = strings.Title(plural)
n.Title = strings.Title(plural) s.setUrls(n, plural)
s.setUrls(n, plural) n.Data["Singular"] = singular
n.Data["Singular"] = singular n.Data["Plural"] = plural
n.Data["Plural"] = plural n.Data["Index"] = s.Indexes[plural]
n.Data["Index"] = s.Indexes[plural] // keep the following just for legacy reasons
// keep the following just for legacy reasons n.Data["OrderedIndex"] = s.Indexes[plural]
n.Data["OrderedIndex"] = s.Indexes[plural]
err := s.render(n, plural+"/index.html", layout) err := s.render(n, plural+"/index.html", layout)
if err != nil { if err != nil {
return err return err
}
} }
} }
} }