Fix 404 with base template regression

Fixes #6795
This commit is contained in:
Bjørn Erik Pedersen 2020-01-26 13:14:08 +01:00
parent 8ae2c9c3d6
commit 8df5d76e70
No known key found for this signature in database
GPG key ID: 330E6E2BD4859D8F
2 changed files with 27 additions and 1 deletions

View file

@ -30,3 +30,19 @@ func Test404(t *testing.T) {
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`)
}

View file

@ -251,7 +251,17 @@ func (s *Site) render404() error {
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 == "" {