hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit 0aaf3c56a511c6582db4dbfb28879e964e6f2d92
parent ee4a33b14ff2b0a2d9130415e16d1046f72573f7
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Sat, 25 Mar 2017 20:31:43 +0100

hugolib: Fix panic for Permalink in 404 etc. templates

Diffstat:
Mhugolib/page_paths.go | 2+-
Mhugolib/site_render.go | 16++++++++++++++++
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/hugolib/page_paths.go b/hugolib/page_paths.go
@@ -71,7 +71,7 @@ type targetPathDescriptor struct {
 // and URLs for this Page.
 func (p *Page) createTargetPathDescriptor(t output.Format) (targetPathDescriptor, error) {
 	if p.targetPathDescriptorPrototype == nil {
-		panic("Must run initTargetPathDescriptor()")
+		panic(fmt.Sprintf("Must run initTargetPathDescriptor() for page %q, kind %q", p.Title, p.Kind))
 	}
 	d := *p.targetPathDescriptorPrototype
 	d.Type = t
diff --git a/hugolib/site_render.go b/hugolib/site_render.go
@@ -216,11 +216,16 @@ func (s *Site) render404() error {
 	}
 
 	p := s.newNodePage(kind404)
+
 	p.Title = "404 Page not found"
 	p.Data["Pages"] = s.Pages
 	p.Pages = s.Pages
 	p.URLPath.URL = "404.html"
 
+	if err := p.initTargetPathDescriptor(); err != nil {
+		return err
+	}
+
 	nfLayouts := []string{"404.html"}
 
 	return s.renderAndWritePage("404 page", "404.html", p, s.appendThemeTemplates(nfLayouts)...)
@@ -245,6 +250,9 @@ func (s *Site) renderSitemap() error {
 
 	page := s.newNodePage(kindSitemap)
 	page.URLPath.URL = ""
+	if err := page.initTargetPathDescriptor(); err != nil {
+		return err
+	}
 	page.Sitemap.ChangeFreq = sitemapDefault.ChangeFreq
 	page.Sitemap.Priority = sitemapDefault.Priority
 	page.Sitemap.Filename = sitemapDefault.Filename
@@ -252,6 +260,11 @@ func (s *Site) renderSitemap() error {
 	n.Data["Pages"] = pages
 	n.Pages = pages
 
+	// TODO(bep) output
+	if err := page.initTargetPathDescriptor(); err != nil {
+		return err
+	}
+
 	// TODO(bep) this should be done somewhere else
 	for _, page := range pages {
 		if page.Sitemap.ChangeFreq == "" {
@@ -284,6 +297,9 @@ func (s *Site) renderRobotsTXT() error {
 	}
 
 	n := s.newNodePage(kindRobotsTXT)
+	if err := n.initTargetPathDescriptor(); err != nil {
+		return err
+	}
 	n.Data["Pages"] = s.Pages
 	n.Pages = s.Pages