mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
hugolib: Add .Page.BundleType
I eturn either: 1. leaf 2. branch 3. empty string The above sits well with constructs like: ``` {{ with .BundleType }} // Now we know it is a bundle {{ end }} ``` Fixes #4662
This commit is contained in:
parent
3decf4a327
commit
402f6788ee
2 changed files with 26 additions and 1 deletions
|
@ -451,6 +451,26 @@ func (p *Page) IsPage() bool {
|
|||
return p.Kind == KindPage
|
||||
}
|
||||
|
||||
// BundleType returns the bundle type: "leaf", "branch" or an empty string if it is none.
|
||||
// See https://gohugo.io/content-management/page-bundles/
|
||||
func (p *Page) BundleType() string {
|
||||
if p.IsNode() {
|
||||
return "branch"
|
||||
}
|
||||
|
||||
var source interface{} = p.Source.File
|
||||
if fi, ok := source.(*fileInfo); ok {
|
||||
switch fi.bundleTp {
|
||||
case bundleBranch:
|
||||
return "branch"
|
||||
case bundleLeaf:
|
||||
return "leaf"
|
||||
}
|
||||
}
|
||||
|
||||
return ""
|
||||
}
|
||||
|
||||
type Source struct {
|
||||
Frontmatter []byte
|
||||
Content []byte
|
||||
|
|
|
@ -82,6 +82,7 @@ func TestPageBundlerSiteRegular(t *testing.T) {
|
|||
assert.Len(s.RegularPages, 8)
|
||||
|
||||
singlePage := s.getPage(KindPage, "a/1.md")
|
||||
assert.Equal("", singlePage.BundleType())
|
||||
|
||||
assert.NotNil(singlePage)
|
||||
assert.Equal(singlePage, s.getPage("page", "a/1"))
|
||||
|
@ -105,8 +106,12 @@ func TestPageBundlerSiteRegular(t *testing.T) {
|
|||
|
||||
leafBundle1 := s.getPage(KindPage, "b/my-bundle/index.md")
|
||||
assert.NotNil(leafBundle1)
|
||||
assert.Equal("leaf", leafBundle1.BundleType())
|
||||
assert.Equal("b", leafBundle1.Section())
|
||||
assert.NotNil(s.getPage(KindSection, "b"))
|
||||
sectionB := s.getPage(KindSection, "b")
|
||||
assert.NotNil(sectionB)
|
||||
home, _ := s.Info.Home()
|
||||
assert.Equal("branch", home.BundleType())
|
||||
|
||||
// This is a root bundle and should live in the "home section"
|
||||
// See https://github.com/gohugoio/hugo/issues/4332
|
||||
|
|
Loading…
Reference in a new issue