mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-07 20:30:36 -05:00
parent
8df5d76e70
commit
74b6c4e5ff
3 changed files with 21 additions and 9 deletions
|
@ -35,14 +35,18 @@ func Test404WithBase(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
b := newTestSitesBuilder(t)
|
b := newTestSitesBuilder(t)
|
||||||
b.WithSimpleConfigFile().WithTemplatesAdded("404.html", `{{ define "main" }}
|
b.WithSimpleConfigFile().WithTemplates("404.html", `{{ define "main" }}
|
||||||
Page not found
|
Page not found
|
||||||
{{ end }}`)
|
{{ end }}`,
|
||||||
|
"baseof.html", `Base: {{ block "main" . }}{{ end }}`).WithContent("page.md", ``)
|
||||||
|
|
||||||
b.Build(BuildCfg{})
|
b.Build(BuildCfg{})
|
||||||
|
|
||||||
// Note: We currently have only 1 404 page. One might think that we should have
|
// 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
|
// multiple, to follow the Custom Output scheme, but I don't see how that would work
|
||||||
// right now.
|
// right now.
|
||||||
b.AssertFileContent("public/404.html", `Page not found`)
|
b.AssertFileContent("public/404.html", `
|
||||||
|
Base:
|
||||||
|
Page not found`)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ type LayoutDescriptor struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d LayoutDescriptor) isList() bool {
|
func (d LayoutDescriptor) isList() bool {
|
||||||
return !d.RenderingHook && d.Kind != "page"
|
return !d.RenderingHook && d.Kind != "page" && d.Kind != "404"
|
||||||
}
|
}
|
||||||
|
|
||||||
// LayoutHandler calculates the layout template to use to render a given output type.
|
// LayoutHandler calculates the layout template to use to render a given output type.
|
||||||
|
@ -173,7 +173,9 @@ func resolvePageTemplate(d LayoutDescriptor, f Format) []string {
|
||||||
b.addTypeVariations("taxonomy")
|
b.addTypeVariations("taxonomy")
|
||||||
b.addSectionType()
|
b.addSectionType()
|
||||||
b.addLayoutVariations("terms")
|
b.addLayoutVariations("terms")
|
||||||
|
case "404":
|
||||||
|
b.addLayoutVariations("404")
|
||||||
|
b.addTypeVariations("")
|
||||||
}
|
}
|
||||||
|
|
||||||
isRSS := f.Name == RSSFormat.Name
|
isRSS := f.Name == RSSFormat.Name
|
||||||
|
@ -182,8 +184,10 @@ func resolvePageTemplate(d LayoutDescriptor, f Format) []string {
|
||||||
b.addLayoutVariations("")
|
b.addLayoutVariations("")
|
||||||
}
|
}
|
||||||
|
|
||||||
// All have _default in their lookup path
|
if d.Baseof || d.Kind != "404" {
|
||||||
b.addTypeVariations("_default")
|
// Most have _default in their lookup path
|
||||||
|
b.addTypeVariations("_default")
|
||||||
|
}
|
||||||
|
|
||||||
if d.isList() {
|
if d.isList() {
|
||||||
// Add the common list type
|
// Add the common list type
|
||||||
|
|
|
@ -123,7 +123,11 @@ func TestLayout(t *testing.T) {
|
||||||
[]string{"section/shortcodes.amp.html"}, 12},
|
[]string{"section/shortcodes.amp.html"}, 12},
|
||||||
{"Reserved section, partials", LayoutDescriptor{Kind: "section", Section: "partials", Type: "partials"}, "", ampType,
|
{"Reserved section, partials", LayoutDescriptor{Kind: "section", Section: "partials", Type: "partials"}, "", ampType,
|
||||||
[]string{"section/partials.amp.html"}, 12},
|
[]string{"section/partials.amp.html"}, 12},
|
||||||
|
// This is currently always HTML only
|
||||||
|
{"404, HTML", LayoutDescriptor{Kind: "404"}, "", htmlFormat,
|
||||||
|
[]string{"404.html.html", "404.html"}, 2},
|
||||||
|
{"404, HTML baseof", LayoutDescriptor{Kind: "404", Baseof: true}, "", htmlFormat,
|
||||||
|
[]string{"404-baseof.html.html", "baseof.html.html", "404-baseof.html", "baseof.html", "_default/404-baseof.html.html", "_default/baseof.html.html", "_default/404-baseof.html", "_default/baseof.html"}, 8},
|
||||||
// We may add type support ... later.
|
// We may add type support ... later.
|
||||||
{"Content hook", LayoutDescriptor{Kind: "render-link", RenderingHook: true, Layout: "mylayout", Section: "blog"}, "", ampType,
|
{"Content hook", LayoutDescriptor{Kind: "render-link", RenderingHook: true, Layout: "mylayout", Section: "blog"}, "", ampType,
|
||||||
[]string{"_default/_markup/render-link.amp.html", "_default/_markup/render-link.html"}, 2},
|
[]string{"_default/_markup/render-link.amp.html", "_default/_markup/render-link.html"}, 2},
|
||||||
|
@ -134,7 +138,7 @@ func TestLayout(t *testing.T) {
|
||||||
layouts, err := l.For(this.d, this.tp)
|
layouts, err := l.For(this.d, this.tp)
|
||||||
|
|
||||||
c.Assert(err, qt.IsNil)
|
c.Assert(err, qt.IsNil)
|
||||||
c.Assert(layouts, qt.Not(qt.IsNil))
|
c.Assert(layouts, qt.Not(qt.IsNil), qt.Commentf(this.d.Kind))
|
||||||
c.Assert(len(layouts) >= len(this.expect), qt.Equals, true, qt.Commentf("%d vs %d", len(layouts), len(this.expect)))
|
c.Assert(len(layouts) >= len(this.expect), qt.Equals, true, qt.Commentf("%d vs %d", len(layouts), len(this.expect)))
|
||||||
// Not checking the complete list for now ...
|
// Not checking the complete list for now ...
|
||||||
got := layouts[:len(this.expect)]
|
got := layouts[:len(this.expect)]
|
||||||
|
|
Loading…
Reference in a new issue