"path/filepath"
"strings"
+ "github.com/gohugoio/hugo/common/maps"
"github.com/gohugoio/hugo/common/types"
"github.com/gobwas/glob"
"github.com/gohugoio/hugo/cache/filecache"
- "github.com/gohugoio/hugo/common/maps"
-
"github.com/gohugoio/hugo/parser/metadecoders"
"github.com/gohugoio/hugo/common/herrors"
}
}
+ // We made this a Glob pattern in Hugo 0.75, we don't need both.
+ if v.GetBool("ignoreVendor") {
+ helpers.Deprecated("--ignoreVendor", "--ignoreVendorPaths **", false)
+ v.Set("ignoreVendorPaths", "**")
+ }
+
+ modulesConfig, err := l.loadModulesConfig(v)
+ if err != nil {
+ return v, configFiles, err
+ }
+
+ // Need to run these after the modules are loaded, but before
+ // they are finalized.
+ collectHook := func(m *modules.ModulesConfig) error {
+ if err := loadLanguageSettings(v, nil); err != nil {
+ return err
+ }
+
+ mods := m.ActiveModules
+
+ // Apply default project mounts.
+ if err := modules.ApplyProjectConfigDefaults(v, mods[0]); err != nil {
+ return err
+ }
+
+ return nil
+ }
+
+ _, modulesConfigFiles, err := l.collectModules(modulesConfig, v, collectHook)
+
+ if err == nil && len(modulesConfigFiles) > 0 {
+ configFiles = append(configFiles, modulesConfigFiles...)
+ }
+
const delim = "__env__delim"
// Apply environment overrides
}
- // We made this a Glob pattern in Hugo 0.75, we don't need both.
- if v.GetBool("ignoreVendor") {
- helpers.Deprecated("--ignoreVendor", "--ignoreVendorPaths **", false)
- v.Set("ignoreVendorPaths", "**")
- }
-
- modulesConfig, err := l.loadModulesConfig(v)
- if err != nil {
- return v, configFiles, err
- }
-
- // Need to run these after the modules are loaded, but before
- // they are finalized.
- collectHook := func(m *modules.ModulesConfig) error {
- if err := loadLanguageSettings(v, nil); err != nil {
- return err
- }
-
- mods := m.ActiveModules
-
- // Apply default project mounts.
- if err := modules.ApplyProjectConfigDefaults(v, mods[0]); err != nil {
- return err
- }
-
- return nil
- }
-
- _, modulesConfigFiles, err := l.collectModules(modulesConfig, v, collectHook)
-
- if err == nil && len(modulesConfigFiles) > 0 {
- configFiles = append(configFiles, modulesConfigFiles...)
- }
-
return v, configFiles, err
}
baseConfig := `
+theme = "mytheme"
environment = "production"
enableGitInfo = true
intSlice = [5,7,9]
b := newTestSitesBuilder(t).WithConfigFile("toml", baseConfig)
+ b.WithSourceFile("themes/mytheme/config.toml", `
+
+[params]
+[params.mytheme_section]
+theme_param="themevalue"
+[params.mytheme_section2]
+theme_param="themevalue2"
+
+`)
+
b.WithEnviron(
"HUGO_ENVIRONMENT", "test",
"HUGO_NEW", "new", // key not in config.toml
"HUGO_STRINGSLICE", `["c", "d"]`,
"HUGO_INTSLICE", `[5, 8, 9]`,
"HUGO_FLOATSLICE", `[5.32]`,
- // https://github.com/gohugoio/hugo/issues/7829
+ // Issue #7829
"HUGOxPARAMSxAPI_CONFIGxAPI_KEY", "new_key",
// Delimiters are case sensitive.
"HUGOxPARAMSxAPI_CONFIGXANOTHER_KEY", "another_key",
+ // Issue #8346
+ "HUGOxPARAMSxMYTHEME_SECTIONxTHEME_PARAM", "themevalue_changed",
+ "HUGOxPARAMSxMYTHEME_SECTION2xTHEME_PARAM", "themevalue2_changed",
)
b.Build(BuildCfg{})
c.Assert(cfg.Get("intSlice"), qt.DeepEquals, []interface{}{5, 8, 9})
c.Assert(cfg.Get("params.api_config.api_key"), qt.Equals, "new_key")
c.Assert(cfg.Get("params.api_config.another_key"), qt.Equals, "default another_key")
+ c.Assert(cfg.Get("params.mytheme_section.theme_param"), qt.Equals, "themevalue_changed")
+ c.Assert(cfg.Get("params.mytheme_section2.theme_param"), qt.Equals, "themevalue2_changed")
}