shithub: hugo

Download patch

ref: 56c61559b2a9f9c4cec3f6c6de9bcc5095a78b57
parent: 78f8475a054a6277d37f13329afd240b00dc9408
author: Bjørn Erik Pedersen <[email protected]>
date: Tue Aug 14 08:04:17 EDT 2018

Only duplicate resource output in multihost mode

Yesterday's commit was a little too agressive.

This commit makes sure that the duplication of resources to public/en etc. is only performed in multihost mode.

See #5058

--- a/hugolib/paths/paths.go
+++ b/hugolib/paths/paths.go
@@ -139,10 +139,8 @@
 		absResourcesDir = FilePathSeparator
 	}
 
-	multilingual := cfg.GetBool("multilingual")
-
 	var multihostTargetBasePaths []string
-	if multilingual {
+	if languages.IsMultihost() {
 		for _, l := range languages {
 			multihostTargetBasePaths = append(multihostTargetBasePaths, l.Lang)
 		}
@@ -167,7 +165,7 @@
 
 		themes: config.GetStringSlicePreserveString(cfg, "theme"),
 
-		multilingual:                   multilingual,
+		multilingual:                   cfg.GetBool("multilingual"),
 		defaultContentLanguageInSubdir: cfg.GetBool("defaultContentLanguageInSubdir"),
 		DefaultContentLanguage:         defaultContentLanguage,
 
--- a/hugolib/resource_chain_test.go
+++ b/hugolib/resource_chain_test.go
@@ -385,3 +385,20 @@
 		test.verify(b)
 	}
 }
+
+func TestMultiSiteResource(t *testing.T) {
+	t.Parallel()
+	assert := require.New(t)
+
+	b := newMultiSiteTestDefaultBuilder(t)
+
+	b.CreateSites().Build(BuildCfg{})
+
+	// This build is multilingual, but not multihost. There should be only one pipes.txt
+	b.AssertFileContent("public/fr/index.html", "French Home Page", "String Resource: /blog/text/pipes.txt")
+	assert.False(b.CheckExists("public/fr/text/pipes.txt"))
+	assert.False(b.CheckExists("public/en/text/pipes.txt"))
+	b.AssertFileContent("public/en/index.html", "Default Home Page", "String Resource: /blog/text/pipes.txt")
+	b.AssertFileContent("public/text/pipes.txt", "Hugo Pipes")
+
+}