shithub: hugo

Download patch

ref: 8df5d76e708238563185bac84809b34a4d395734
parent: 8ae2c9c3d6861b5b8ef55d119a480360162acfc8
author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
date: Sun Jan 26 08:14:08 EST 2020

Fix 404 with base template regression

Fixes #6795

--- a/hugolib/404_test.go
+++ b/hugolib/404_test.go
@@ -30,3 +30,19 @@
 	b.AssertFileContent("public/404.html", "Not Found")
 
 }
+
+func Test404WithBase(t *testing.T) {
+	t.Parallel()
+
+	b := newTestSitesBuilder(t)
+	b.WithSimpleConfigFile().WithTemplatesAdded("404.html", `{{ define "main" }}
+Page not found
+{{ end }}`)
+	b.Build(BuildCfg{})
+
+	// Note: We currently have only 1 404 page. One might think that we should have
+	// multiple, to follow the Custom Output scheme, but I don't see how that would work
+	// right now.
+	b.AssertFileContent("public/404.html", `Page not found`)
+
+}
--- a/hugolib/site_render.go
+++ b/hugolib/site_render.go
@@ -251,7 +251,17 @@
 		return err
 	}
 
-	templ := s.lookupLayouts("404.html")
+	var d output.LayoutDescriptor
+	d.Kind = kind404
+
+	templ, found, err := s.Tmpl().LookupLayout(d, output.HTMLFormat)
+	if err != nil {
+		return err
+	}
+	if !found {
+		return nil
+	}
+
 	targetPath := p.targetPaths().TargetFilename
 
 	if targetPath == "" {