summaryrefslogtreecommitdiffstats
path: root/hugolib/pages_capture.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-07-31 12:31:31 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-07-31 14:20:24 +0200
commit0e086785fa4be8086256e9d7de6cda78e18d00ee (patch)
treec82c36cbbc97ebcbbe10520bed79a7c70af43f25 /hugolib/pages_capture.go
parent02b947eaa3cc68404180d796a2f7119dce074539 (diff)
hugolib: Fix bundle header clone logic
Fixes #6136
Diffstat (limited to 'hugolib/pages_capture.go')
-rw-r--r--hugolib/pages_capture.go29
1 files changed, 17 insertions, 12 deletions
diff --git a/hugolib/pages_capture.go b/hugolib/pages_capture.go
index 094933793..361b87e84 100644
--- a/hugolib/pages_capture.go
+++ b/hugolib/pages_capture.go
@@ -344,7 +344,7 @@ func (c *pagesCollector) addToBundle(info hugofs.FileMetaInfo, btyp bundleDirTyp
}
cloneBundle := func(lang string) *fileinfoBundle {
- // Every bundled file needs a content file header.
+ // Every bundled content file needs a content file header.
// Use the default content language if found, else just
// pick one.
var (
@@ -376,6 +376,7 @@ func (c *pagesCollector) addToBundle(info hugofs.FileMetaInfo, btyp bundleDirTyp
bundle := getBundle(lang)
isBundleHeader := c.isBundleHeader(info)
classifier := info.Meta().Classifier()
+ isContent := classifier == files.ContentClassContent
if bundle == nil {
if isBundleHeader {
bundle = &fileinfoBundle{header: info}
@@ -384,28 +385,32 @@ func (c *pagesCollector) addToBundle(info hugofs.FileMetaInfo, btyp bundleDirTyp
if btyp == bundleBranch {
// No special logic for branch bundles.
// Every language needs its own _index.md file.
+ // Also, we only clone bundle headers for lonsesome, bundled,
+ // content files.
return c.handleFiles(info)
}
- bundle = cloneBundle(lang)
- bundles[lang] = bundle
+ if isContent {
+ bundle = cloneBundle(lang)
+ bundles[lang] = bundle
+ }
}
}
- if !isBundleHeader {
+ if !isBundleHeader && bundle != nil {
bundle.resources = append(bundle.resources, info)
}
if classifier == files.ContentClassFile {
translations := info.Meta().Translations()
- if len(translations) < len(bundles) {
- for lang, b := range bundles {
- if !stringSliceContains(lang, translations...) && !b.containsResource(info.Name()) {
- // Clone and add it to the bundle.
- clone := c.cloneFileInfo(info)
- clone.Meta()["lang"] = lang
- b.resources = append(b.resources, clone)
- }
+
+ for lang, b := range bundles {
+ if !stringSliceContains(lang, translations...) && !b.containsResource(info.Name()) {
+
+ // Clone and add it to the bundle.
+ clone := c.cloneFileInfo(info)
+ clone.Meta()["lang"] = lang
+ b.resources = append(b.resources, clone)
}
}
}