mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-26 22:04:32 +02:00
Refactored added RenderThingOrDefault and tests
Signed-off-by: Noah Campbell <noahcampbell@gmail.com> Conflicts: hugolib/site.go
This commit is contained in:
committed by
Noah Campbell
parent
1de1992664
commit
1bb00b8c19
@@ -447,13 +447,9 @@ func (s *Site) RenderAliases() error {
|
||||
|
||||
func (s *Site) RenderPages() error {
|
||||
for i, _ := range s.Pages {
|
||||
content, err := s.RenderThing(s.Pages[i], s.Pages[i].Layout())
|
||||
content, err := s.RenderThingOrDefault(s.Pages[i], s.Pages[i].Layout(), "_default/single.html")
|
||||
if err != nil {
|
||||
var err2 error
|
||||
content, err2 = s.RenderThing(s.Pages[i], "_default/single.html")
|
||||
if err2 != nil {
|
||||
return err
|
||||
}
|
||||
return err
|
||||
}
|
||||
s.Pages[i].RenderedContent = content
|
||||
}
|
||||
@@ -549,11 +545,11 @@ func (s *Site) RenderLists() error {
|
||||
n.Data["Pages"] = data
|
||||
layout := "indexes/" + section + ".html"
|
||||
|
||||
x, err := s.RenderThing(n, layout)
|
||||
content, err := s.RenderThingOrDefault(n, layout, "_default/index.html")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
s.WritePublic(section+"/index.html", x.Bytes())
|
||||
s.WritePublic(section+"/index.html", content.Bytes())
|
||||
|
||||
if a := s.Tmpl.Lookup("rss.xml"); a != nil {
|
||||
// XML Feed
|
||||
@@ -639,6 +635,18 @@ func (s *Site) RenderThing(d interface{}, layout string) (*bytes.Buffer, error)
|
||||
return buffer, err
|
||||
}
|
||||
|
||||
func (s *Site) RenderThingOrDefault(d interface{}, layout string, defaultLayout string) (*bytes.Buffer, error) {
|
||||
content, err := s.RenderThing(d, layout)
|
||||
if err != nil {
|
||||
var err2 error
|
||||
content, err2 = s.RenderThing(d, defaultLayout)
|
||||
if err2 == nil {
|
||||
return content, err2
|
||||
}
|
||||
}
|
||||
return content, err
|
||||
}
|
||||
|
||||
func (s *Site) NewXMLBuffer() *bytes.Buffer {
|
||||
header := "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\" ?>\n"
|
||||
return bytes.NewBufferString(header)
|
||||
|
Reference in New Issue
Block a user