Repository: gohugoio/hugo (language: go)

Issue:
nit/noise: Rename hugo.IsMultiHost and hugo.IsMultiLingual
Feel free to close, but both multihost and multilingual are one word without hyphenation, so these seem a better choice:

- hugo.IsMultihost
- hugo.IsMultilingual

I noticed yesterday that, excluding the methods exposed to the templates, we are inconsistent internally:

- IsMultihost (no camel case)
- IsMultiLingual (camel case)

I'd like to change the exposed methods and make the internal usage consistent with the exposed methods.

`hugo.IsMultiHost` was just introduced last week in v0.123.8, so if we (you) want to change this, now would be a good time. 







Discussion / hints:

Fix patch:
diff --git a/commands/server.go b/commands/server.go
index 0ce655c5196..afc539c445a 100644
--- a/commands/server.go
+++ b/commands/server.go
@@ -617,9 +617,9 @@ func (c *serverCommand) setBaseURLsInConfig() error {
 	}
 	return c.withConfE(func(conf *commonConfig) error {
 		for i, language := range conf.configs.Languages {
-			isMultiHost := conf.configs.IsMultihost
+			isMultihost := conf.configs.IsMultihost
 			var serverPort int
-			if isMultiHost {
+			if isMultihost {
 				serverPort = c.serverPorts[i].p
 			} else {
 				serverPort = c.serverPorts[0].p
@@ -737,9 +737,9 @@ func (c *serverCommand) createServerPorts(cd *simplecobra.Commandeer) error {
 	flags := cd.CobraCommand.Flags()
 	var cerr error
 	c.withConf(func(conf *commonConfig) {
-		isMultiHost := conf.configs.IsMultihost
+		isMultihost := conf.configs.IsMultihost
 		c.serverPorts = make([]serverPortListener, 1)
-		if isMultiHost {
+		if isMultihost {
 			if !c.serverAppend {
 				cerr = errors.New("--appendPort=false not supported when in multihost mode")
 				return
@@ -852,7 +852,7 @@ func (c *serverCommand) serve() error {
 		h        *hugolib.HugoSites
 	)
 	err := c.withConfE(func(conf *commonConfig) error {
-		isMultiHost := conf.configs.IsMultihost
+		isMultihost := conf.configs.IsMultihost
 		var err error
 		h, err = c.r.HugFromConfig(conf)
 		if err != nil {
@@ -862,7 +862,7 @@ func (c *serverCommand) serve() error {
 		// We need the server to share the same logger as the Hugo build (for error counts etc.)
 		c.r.logger = h.Log
 
-		if isMultiHost {
+		if isMultihost {
 			for _, l := range conf.configs.ConfigLangs() {
 				baseURLs = append(baseURLs, l.BaseURL())
 				roots = append(roots, l.Language().Lang)
@@ -1005,7 +1005,6 @@ func (c *serverCommand) serve() error {
 			}
 		}
 	}()
-
 	if err != nil {
 		c.r.Println("Error:", err)
 	}
diff --git a/common/hugo/hugo.go b/common/hugo/hugo.go
index a3d1a7bfcac..0589ac9a36d 100644
--- a/common/hugo/hugo.go
+++ b/common/hugo/hugo.go
@@ -111,14 +111,20 @@ func (i HugoInfo) Deps() []*Dependency {
 	return i.deps
 }
 
-// IsMultiHost reports whether each configured language has a unique baseURL.
+// Deprecated: Use hugo.IsMultihost instead.
 func (i HugoInfo) IsMultiHost() bool {
+	Deprecate("hugo.IsMultiHost", "Use hugo.IsMultihost instead.", "v0.124.0")
 	return i.conf.IsMultihost()
 }
 
-// IsMultiLingual reports whether there are two or more configured languages.
-func (i HugoInfo) IsMultiLingual() bool {
-	return i.conf.IsMultiLingual()
+// IsMultihost reports whether each configured language has a unique baseURL.
+func (i HugoInfo) IsMultihost() bool {
+	return i.conf.IsMultihost()
+}
+
+// IsMultilingual reports whether there are two or more configured languages.
+func (i HugoInfo) IsMultilingual() bool {
+	return i.conf.IsMultilingual()
 }
 
 // ConfigProvider represents the config options that are relevant for HugoInfo.
@@ -127,7 +133,7 @@ type ConfigProvider interface {
 	Running() bool
 	WorkingDir() string
 	IsMultihost() bool
-	IsMultiLingual() bool
+	IsMultilingual() bool
 }
 
 // NewInfo creates a new Hugo Info object.
diff --git a/config/allconfig/allconfig.go b/config/allconfig/allconfig.go
index 9cafc876e15..590f2ba60cd 100644
--- a/config/allconfig/allconfig.go
+++ b/config/allconfig/allconfig.go
@@ -826,7 +826,7 @@ func fromLoadConfigResult(fs afero.Fs, logger loggers.Logger, res config.LoadCon
 	langConfigMap := make(map[string]*Config)
 
 	languagesConfig := cfg.GetStringMap("languages")
-	var isMultiHost bool
+	var isMultihost bool
 
 	if err := all.CompileConfig(logger); err != nil {
 		return nil, err
@@ -863,7 +863,7 @@ func fromLoadConfigResult(fs afero.Fs, logger loggers.Logger, res config.LoadCon
 				}
 				if kk == "baseurl" {
 					// baseURL configure don the language level is a multihost setup.
-					isMultiHost = true
+					isMultihost = true
 				}
 				mergedConfig.Set(kk, vv)
 				rootv := cfg.Get(kk)
@@ -913,7 +913,7 @@ func fromLoadConfigResult(fs afero.Fs, logger loggers.Logger, res config.LoadCon
 			}
 
 			// Adjust Goldmark config defaults for multilingual, single-host sites.
-			if len(languagesConfig) > 1 && !isMultiHost && !clone.Markup.Goldmark.DuplicateResourceFiles {
+			if len(languagesConfig) > 1 && !isMultihost && !clone.Markup.Goldmark.DuplicateResourceFiles {
 				if !clone.Markup.Goldmark.DuplicateResourceFiles {
 					if clone.Markup.Goldmark.RenderHooks.Link.EnableDefault == nil {
 						clone.Markup.Goldmark.RenderHooks.Link.EnableDefault = types.NewBool(true)
@@ -943,7 +943,7 @@ func fromLoadConfigResult(fs afero.Fs, logger loggers.Logger, res config.LoadCon
 		Base:              all,
 		LanguageConfigMap: langConfigMap,
 		LoadingInfo:       res,
-		IsMultihost:       isMultiHost,
+		IsMultihost:       isMultihost,
 	}
 
 	return cm, nil
diff --git a/config/allconfig/configlanguage.go b/config/allconfig/configlanguage.go
index 9971be65f08..900db75ce6a 100644
--- a/config/allconfig/configlanguage.go
+++ b/config/allconfig/configlanguage.go
@@ -52,7 +52,7 @@ func (c ConfigLanguage) LanguagePrefix() string {
 		return c.Language().Lang
 	}
 
-	if !c.IsMultiLingual() || c.DefaultContentLanguage() == c.Language().Lang {
+	if !c.IsMultilingual() || c.DefaultContentLanguage() == c.Language().Lang {
 		return ""
 	}
 	return c.Language().Lang
@@ -78,7 +78,7 @@ func (c ConfigLanguage) FastRenderMode() bool {
 	return c.config.Internal.FastRenderMode
 }
 
-func (c ConfigLanguage) IsMultiLingual() bool {
+func (c ConfigLanguage) IsMultilingual() bool {
 	return len(c.m.Languages) > 1
 }
 
diff --git a/config/configProvider.go b/config/configProvider.go
index 586a9b758fd..8f74202abf2 100644
--- a/config/configProvider.go
+++ b/config/configProvider.go
@@ -35,7 +35,7 @@ type AllProvider interface {
 	PathParser() *paths.PathParser
 	Environment() string
 	IsMultihost() bool
-	IsMultiLingual() bool
+	IsMultilingual() bool
 	NoBuildLock() bool
 	BaseConfig() BaseConfig
 	Dirs() CommonDirs
diff --git a/hugolib/content_map_page.go b/hugolib/content_map_page.go
index 76407862368..906fced77d4 100644
--- a/hugolib/content_map_page.go
+++ b/hugolib/content_map_page.go
@@ -1778,7 +1778,7 @@ func (sa *sitePagesAssembler) addStandalonePages() error {
 
 	if sitemapEnabled {
 		addStandalone("/_sitemap", kinds.KindSitemap, output.SitemapFormat)
-		skipSitemapIndex := s.Conf.IsMultihost() || !(s.Conf.DefaultContentLanguageInSubdir() || s.Conf.IsMultiLingual())
+		skipSitemapIndex := s.Conf.IsMultihost() || !(s.Conf.DefaultContentLanguageInSubdir() || s.Conf.IsMultilingual())
 
 		if !skipSitemapIndex {
 			addStandalone("/_sitemapindex", kinds.KindSitemapIndex, output.SitemapIndexFormat)
diff --git a/hugolib/hugo_sites.go b/hugolib/hugo_sites.go
index 99dc88b10a1..671785f4483 100644
--- a/hugolib/hugo_sites.go
+++ b/hugolib/hugo_sites.go
@@ -269,7 +269,7 @@ func (h *HugoSites) pickOneAndLogTheRest(errors []error) error {
 	return errors[i]
 }
 
-func (h *HugoSites) isMultiLingual() bool {
+func (h *HugoSites) isMultilingual() bool {
 	return len(h.Sites) > 1
 }
 
diff --git a/hugolib/site.go b/hugolib/site.go
index 5a58e837318..117e1014421 100644
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -297,7 +297,6 @@ func (s *siteRefLinker) refLink(ref string, source any, relative bool, outputFor
 	ref = filepath.ToSlash(ref)
 
 	refURL, err = url.Parse(ref)
-
 	if err != nil {
 		return s.notFoundURL, err
 	}
@@ -681,7 +680,7 @@ func (s *Site) getLanguagePermalinkLang(alwaysInSubDir bool) string {
 		return ""
 	}
 
-	if s.h.Conf.IsMultiLingual() && alwaysInSubDir {
+	if s.h.Conf.IsMultilingual() && alwaysInSubDir {
 		return s.Language().Lang
 	}
 
diff --git a/hugolib/site_new.go b/hugolib/site_new.go
index 5a58119585b..21d5ace9637 100644
--- a/hugolib/site_new.go
+++ b/hugolib/site_new.go
@@ -484,10 +484,10 @@ func (s *Site) BuildDrafts() bool {
 	return s.conf.BuildDrafts
 }
 
-// Deprecated: Use hugo.IsMultiLingual instead.
+// Deprecated: Use hugo.IsMultilingual instead.
 func (s *Site) IsMultiLingual() bool {
-	hugo.Deprecate(".Site.IsMultiLingual", "Use hugo.IsMultiLingual instead.", "v0.124.0")
-	return s.h.isMultiLingual()
+	hugo.Deprecate(".Site.IsMultiLingual", "Use hugo.IsMultilingual instead.", "v0.124.0")
+	return s.h.isMultilingual()
 }
 
 func (s *Site) LanguagePrefix() string {
diff --git a/hugolib/site_render.go b/hugolib/site_render.go
index 1cf4b9a61b4..86be897faf5 100644
--- a/hugolib/site_render.go
+++ b/hugolib/site_render.go
@@ -334,7 +334,7 @@ func (s *Site) renderAliases() error {
 // renderMainLanguageRedirect creates a redirect to the main language home,
 // depending on if it lives in sub folder (e.g. /en) or not.
 func (s *Site) renderMainLanguageRedirect() error {
-	if s.h.Conf.IsMultihost() || !(s.h.Conf.DefaultContentLanguageInSubdir() || s.h.Conf.IsMultiLingual()) {
+	if s.h.Conf.IsMultihost() || !(s.h.Conf.DefaultContentLanguageInSubdir() || s.h.Conf.IsMultilingual()) {
 		// No need for a redirect
 		return nil
 	}
diff --git a/modules/config.go b/modules/config.go
index 62671613cf8..abb938ac0c4 100644
--- a/modules/config.go
+++ b/modules/config.go
@@ -86,7 +86,7 @@ func ApplyProjectConfigDefaults(mod Module, cfgs ...config.AllProvider) error {
 
 		first := cfgs[0]
 		dirsBase := first.DirsBase()
-		isMultiHost := first.IsMultihost()
+		isMultihost := first.IsMultihost()
 
 		for i, cfg := range cfgs {
 			dirs := cfg.Dirs()
@@ -113,7 +113,7 @@ func ApplyProjectConfigDefaults(mod Module, cfgs ...config.AllProvider) error {
 				dir = dirs.AssetDir
 			case files.ComponentFolderStatic:
 				// For static dirs, we only care about the language in multihost setups.
-				dropLang = !isMultiHost
+				dropLang = !isMultihost
 			}
 
 			var perLang bool
diff --git a/resources/page/site.go b/resources/page/site.go
index d9f3d967b83..8f268091ff3 100644
--- a/resources/page/site.go
+++ b/resources/page/site.go
@@ -126,7 +126,7 @@ type Site interface {
 	// BuildDrafts is deprecated and will be removed in a future release.
 	BuildDrafts() bool
 
-	// Deprecated: Use hugo.IsMultiLingual instead.
+	// Deprecated: Use hugo.IsMultilingual instead.
 	IsMultiLingual() bool
 
 	// LanguagePrefix returns the language prefix for this site.
@@ -292,7 +292,7 @@ func (s *siteWrapper) BuildDrafts() bool {
 	return s.s.BuildDrafts()
 }
 
-// Deprecated: Use hugo.IsMultiLingual instead.
+// Deprecated: Use hugo.IsMultilingual instead.
 func (s *siteWrapper) IsMultiLingual() bool {
 	return s.s.IsMultiLingual()
 }
@@ -453,7 +453,7 @@ func (s testSite) BuildDrafts() bool {
 	return false
 }
 
-// Deprecated: Use hugo.IsMultiLingual instead.
+// Deprecated: Use hugo.IsMultilingual instead.
 func (s testSite) IsMultiLingual() bool {
 	return false
 }


Test patch:
diff --git a/common/hugo/hugo_integration_test.go b/common/hugo/hugo_integration_test.go
index 9fcfb95cf6d..77dbb5c9119 100644
--- a/common/hugo/hugo_integration_test.go
+++ b/common/hugo/hugo_integration_test.go
@@ -20,7 +20,7 @@ import (
 	"github.com/gohugoio/hugo/hugolib"
 )
 
-func TestIsMultiLingualAndIsMultiHost(t *testing.T) {
+func TestIsMultilingualAndIsMultihost(t *testing.T) {
 	t.Parallel()
 
 	files := `
@@ -36,8 +36,8 @@ baseURL = 'https://en.example.org/'
 title: home
 ---
 -- layouts/index.html --
-multilingual={{ hugo.IsMultiLingual }}
-multihost={{ hugo.IsMultiHost }}
+multilingual={{ hugo.IsMultilingual }}
+multihost={{ hugo.IsMultihost }}
   `
 
 	b := hugolib.Test(t, files)
diff --git a/common/hugo/hugo_test.go b/common/hugo/hugo_test.go
index e1d9071586a..6e8b2620e4a 100644
--- a/common/hugo/hugo_test.go
+++ b/common/hugo/hugo_test.go
@@ -88,6 +88,6 @@ func (c testConfig) IsMultihost() bool {
 	return c.multihost
 }
 
-func (c testConfig) IsMultiLingual() bool {
+func (c testConfig) IsMultilingual() bool {
 	return c.multilingual
 }
diff --git a/hugolib/config_test.go b/hugolib/config_test.go
index 7914dda45e0..22beea655e8 100644
--- a/hugolib/config_test.go
+++ b/hugolib/config_test.go
@@ -508,12 +508,12 @@ func TestLoadConfigFromThemeDir(t *testing.T) {
 theme = "test-theme"
 
 [params]
-m1 = "mv1"	
+m1 = "mv1"
 `
 
 	themeConfig := `
 [params]
-t1 = "tv1"	
+t1 = "tv1"
 t2 = "tv2"
 `
 
@@ -885,9 +885,9 @@ ThisIsAParam: {{ site.Params.thisIsAParam }}
 	).BuildE()
 
 	b.Assert(err, qt.IsNil)
-	b.AssertFileContent("public/index.html", `		
+	b.AssertFileContent("public/index.html", `
 MyParam: enParamValue
-ThisIsAParam: thisIsAParamValue	
+ThisIsAParam: thisIsAParamValue
 `)
 }
 
@@ -919,7 +919,7 @@ title: "My Swedish Section"
 -- layouts/index.html --
 LanguageCode: {{ eq site.LanguageCode site.Language.LanguageCode }}|{{ site.Language.LanguageCode }}|
 {{ range $i, $e := (slice site .Site) }}
-{{ $i }}|AllPages: {{ len .AllPages }}|Sections: {{ if .Sections }}true{{ end }}| Author: {{ .Authors }}|BuildDrafts: {{ .BuildDrafts }}|IsMultiLingual: {{ .IsMultiLingual }}|Param: {{ .Language.Params.myparam }}|Language string: {{ .Language }}|Languages: {{ .Languages }}
+{{ $i }}|AllPages: {{ len .AllPages }}|Sections: {{ if .Sections }}true{{ end }}| Author: {{ .Authors }}|BuildDrafts: {{ .BuildDrafts }}|IsMultilingual: {{ .IsMultiLingual }}|Param: {{ .Language.Params.myparam }}|Language string: {{ .Language }}|Languages: {{ .Languages }}
 {{ end }}
 
 
@@ -939,9 +939,9 @@ LanguageCode: {{ eq site.LanguageCode site.Language.LanguageCode }}|{{ site.Lang
 	b.AssertFileContent("public/index.html", `
 AllPages: 4|
 Sections: true|
-Param: enParamValue	
-Param: enParamValue	
-IsMultiLingual: true
+Param: enParamValue
+Param: enParamValue
+IsMultilingual: true
 LanguageCode: true|en-US|
 `)
 
@@ -1062,7 +1062,7 @@ Home
 	).BuildE()
 
 	b.Assert(err, qt.IsNil)
-	b.AssertFileContent("public/index.html", `		
+	b.AssertFileContent("public/index.html", `
 Home
 `)
 
@@ -1095,7 +1095,7 @@ HTML.
 HTACCESS.
 
 
-	
+
 `
 	b := Test(t, files)
 
@@ -1111,7 +1111,7 @@ languageCode = "en-US"
 -- layouts/index.html --
 LanguageCode: {{ .Site.LanguageCode }}|{{ site.Language.LanguageCode }}|
 
-	
+
 `
 	b := Test(t, files)
 
@@ -1137,7 +1137,7 @@ suffixes = ["bar"]
 -- layouts/index.html --
 Home.
 
-	
+
 `
 	b := Test(t, files)
 
@@ -1164,8 +1164,8 @@ func TestConfigMiscPanics(t *testing.T) {
 params:
 -- layouts/index.html --
 Foo: {{ site.Params.foo }}|
-	
-		
+
+
 	`
 		b := Test(t, files)
 
@@ -1188,8 +1188,8 @@ defaultContentLanguage = "en"
 	weight = 1
 -- layouts/index.html --
 Foo: {{ site.Params.foo }}|
-	
-		
+
+
 	`
 		b, err := NewIntegrationTestBuilder(
 			IntegrationTestConfig{
@@ -1215,8 +1215,8 @@ languageCode = "en"
 languageName = "English"
 weight = 1
 
-	
-		
+
+
 	`
 		b, err := NewIntegrationTestBuilder(
 			IntegrationTestConfig{
@@ -1241,7 +1241,7 @@ contentDir = "mycontent"
 -- layouts/index.html --
 Home.
 
-	
+
 `
 	b := Test(t, files)
 
@@ -1343,7 +1343,7 @@ disabled = true
 -- layouts/index.html --
 Home.
 
-	
+
 `
 	b := Test(t, files)
 
@@ -1438,7 +1438,7 @@ home = ["html"]
 -- hugo.toml --
 baseURL = "https://example.com"
 disableKinds = ["taxonomy", "term", "RSS", "sitemap", "robotsTXT", "page", "section"]
-		
+
 		`
 
 		runVariant(t, files, nil)
diff --git a/hugolib/filesystems/basefs_test.go b/hugolib/filesystems/basefs_test.go
index 10b4a4cb296..e3970938665 100644
--- a/hugolib/filesystems/basefs_test.go
+++ b/hugolib/filesystems/basefs_test.go
@@ -315,7 +315,7 @@ func TestStaticFs(t *testing.T) {
 	checkFileContent(sfs, "f2.txt", c, "Hugo Themes Still Rocks!")
 }
 
-func TestStaticFsMultiHost(t *testing.T) {
+func TestStaticFsMultihost(t *testing.T) {
 	c := qt.New(t)
 	v := config.New()
 	workDir := "mywork"
@@ -537,7 +537,7 @@ SCSS Match: {{ with resources.Match "**.scss" }}{{ . | len }}|{{ range .}}{{ .Re
 
 	b := hugolib.Test(t, files)
 
-	b.AssertFileContent("public/index.html", `	
+	b.AssertFileContent("public/index.html", `
 SCSS: /scss/app.scss|body { color: blue; }|
 SCSS Match: 2|
 `)
diff --git a/hugolib/hugo_sites_multihost_test.go b/hugolib/hugo_sites_multihost_test.go
index 4b779ee9216..937166146fc 100644
--- a/hugolib/hugo_sites_multihost_test.go
+++ b/hugolib/hugo_sites_multihost_test.go
@@ -66,12 +66,12 @@ robots|{{ site.Language.Lang }}
 404|{{ site.Language.Lang }}
 
 
-	
+
 `
 
 	b := Test(t, files)
 
-	b.Assert(b.H.Conf.IsMultiLingual(), qt.Equals, true)
+	b.Assert(b.H.Conf.IsMultilingual(), qt.Equals, true)
 	b.Assert(b.H.Conf.IsMultihost(), qt.Equals, true)
 
 	// helpers.PrintFs(b.H.Fs.PublishDir, "", os.Stdout)
diff --git a/resources/page/page_matcher_test.go b/resources/page/page_matcher_test.go
index 3ab68e8af39..dfb479d5ed9 100644
--- a/resources/page/page_matcher_test.go
+++ b/resources/page/page_matcher_test.go
@@ -180,7 +180,7 @@ func (c testConfig) IsMultihost() bool {
 	return c.multihost
 }
 
-func (c testConfig) IsMultiLingual() bool {
+func (c testConfig) IsMultilingual() bool {
 	return c.multilingual
 }