]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
Fix panic when 404 is backed by a content file
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 20 Dec 2025 10:26:33 +0000 (11:26 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 20 Dec 2025 12:42:21 +0000 (13:42 +0100)
Fixes #14283

hugolib/404_test.go
hugolib/content_map_page_assembler.go
hugolib/doctree/nodeshifttree.go

index 90e804c2d5bea59d0106ab04b77dee7982afd515..e1c0195f3a28cd50152065f8a4f33ebff2a25ab7 100644 (file)
@@ -92,3 +92,24 @@ Not found.
 
        b.AssertFileContent("public/404.html", `Not found. Updated.`)
 }
+
+func Test404Panic14283(t *testing.T) {
+       t.Parallel()
+
+       files := `
+-- hugo.toml --
+baseURL = "http://example.com/"
+-- layouts/all.html --
+All. {{ .Kind }}. {{ .Title }}|
+-- content/404/_index.md --
+---
+title: "404 branch"
+---
+This is the 404 branch.
+
+`
+
+       b := Test(t, files) // panic.
+
+       b.AssertFileContent("public/404/index.html", "All. section. 404 branch|")
+}
index 48c16c2a483056d3e2679edce16b87c0857de5be..7ba9ef5ab9b198e2b3997c6ab0afaa35f2310cea 100644 (file)
@@ -198,6 +198,7 @@ func (a *allPagesAssembler) doCreatePages(prefix string, depth int) error {
                        p := newHomePageMetaSource()
                        treePages.InsertRaw(p.pathInfo.Base(), p)
                }
+
        }
 
        getCascades := func(wctx *doctree.WalkContext[contentNode], s string) *page.PageMatcherParamsConfigs {
index 6e87875aa16e8b7325d006bd5a55d1ed9115afec..8963a610ad2f2ef0df39ec5c3a271437e04b872b 100644 (file)
@@ -625,7 +625,7 @@ func (r *NodeShiftTreeWalker[T]) toT(tree *NodeShiftTree[T], v T) (T, bool) {
 }
 
 func (r *NodeShiftTree[T]) Has(s string) bool {
-       _, ok := r.get(s)
+       _, ok := r.GetRaw(s)
        return ok
 }