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 == "" {