shithub: hugo

Download patch

ref: 0aaf3c56a511c6582db4dbfb28879e964e6f2d92
parent: ee4a33b14ff2b0a2d9130415e16d1046f72573f7
author: Bjørn Erik Pedersen <[email protected]>
date: Sat Mar 25 16:31:43 EDT 2017

hugolib: Fix panic for Permalink in 404 etc. templates

--- a/hugolib/page_paths.go
+++ b/hugolib/page_paths.go
@@ -71,7 +71,7 @@
 // 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
--- a/hugolib/site_render.go
+++ b/hugolib/site_render.go
@@ -216,11 +216,16 @@
 	}
 
 	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 @@
 
 	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 @@
 	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 @@
 	}
 
 	n := s.newNodePage(kindRobotsTXT)
+	if err := n.initTargetPathDescriptor(); err != nil {
+		return err
+	}
 	n.Data["Pages"] = s.Pages
 	n.Pages = s.Pages