From 56c61559b2a9f9c4cec3f6c6de9bcc5095a78b57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Tue, 14 Aug 2018 12:04:17 +0200 Subject: [PATCH] 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 --- hugolib/paths/paths.go | 6 ++---- hugolib/resource_chain_test.go | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/hugolib/paths/paths.go b/hugolib/paths/paths.go index 10acf0cb38b..625d68ec640 100644 --- a/hugolib/paths/paths.go +++ b/hugolib/paths/paths.go @@ -139,10 +139,8 @@ func New(fs *hugofs.Fs, cfg config.Provider) (*Paths, error) { 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 @@ func New(fs *hugofs.Fs, cfg config.Provider) (*Paths, error) { themes: config.GetStringSlicePreserveString(cfg, "theme"), - multilingual: multilingual, + multilingual: cfg.GetBool("multilingual"), defaultContentLanguageInSubdir: cfg.GetBool("defaultContentLanguageInSubdir"), DefaultContentLanguage: defaultContentLanguage, diff --git a/hugolib/resource_chain_test.go b/hugolib/resource_chain_test.go index 0a4c3bd1fe7..ad0d9611cb3 100644 --- a/hugolib/resource_chain_test.go +++ b/hugolib/resource_chain_test.go @@ -385,3 +385,20 @@ $color: #333; 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") + +}