diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-07-02 10:46:28 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-07-04 09:12:44 +0200 |
commit | aa6b1b9be7c9d7322333893b642aaf8c7a5f2c2e (patch) | |
tree | 14e3995039a65d7f8e98ff47c6c738b3a7e1684b /hugolib/hugo_sites_build_test.go | |
parent | a1d260b41a6673adef679ec4e262c5f390432cf5 (diff) |
output: Support templates per site/language
This applies to both regular templates and shortcodes. So, if the site language is French and the output format is AMP, this is the (start) of the lookup order for the home page:
1. index.fr.amp.html
2. index.amp.html
3. index.fr.html
4. index.html
5. ...
Fixes #3360
Diffstat (limited to 'hugolib/hugo_sites_build_test.go')
-rw-r--r-- | hugolib/hugo_sites_build_test.go | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/hugolib/hugo_sites_build_test.go b/hugolib/hugo_sites_build_test.go index c343f6087..96e2c66b2 100644 --- a/hugolib/hugo_sites_build_test.go +++ b/hugolib/hugo_sites_build_test.go @@ -305,12 +305,12 @@ func doTestMultiSitesBuild(t *testing.T, configTemplate, configSuffix string) { require.True(t, strings.Contains(languageRedirect, "0; url=http://example.com/blog/fr"), languageRedirect) // check home page content (including data files rendering) - th.assertFileContent("public/en/index.html", "Home Page 1", "Hello", "Hugo Rocks!") - th.assertFileContent("public/fr/index.html", "Home Page 1", "Bonjour", "Hugo Rocks!") + th.assertFileContent("public/en/index.html", "Default Home Page 1", "Hello", "Hugo Rocks!") + th.assertFileContent("public/fr/index.html", "French Home Page 1", "Bonjour", "Hugo Rocks!") // check single page content - th.assertFileContent("public/fr/sect/doc1/index.html", "Single", "Shortcode: Bonjour") - th.assertFileContent("public/en/sect/doc1-slug/index.html", "Single", "Shortcode: Hello") + th.assertFileContent("public/fr/sect/doc1/index.html", "Single", "Shortcode: Bonjour", "LingoFrench") + th.assertFileContent("public/en/sect/doc1-slug/index.html", "Single", "Shortcode: Hello", "LingoDefault") // Check node translations homeEn := enSite.getPage(KindHome) @@ -1042,7 +1042,14 @@ func createMultiTestSitesForConfig(t *testing.T, siteConfig testSiteConfig, conf if err := afero.WriteFile(mf, filepath.Join("layouts", "index.html"), - []byte("{{ $p := .Paginator }}Home Page {{ $p.PageNumber }}: {{ .Title }}|{{ .IsHome }}|{{ i18n \"hello\" }}|{{ .Permalink }}|{{ .Site.Data.hugo.slogan }}"), + []byte("{{ $p := .Paginator }}Default Home Page {{ $p.PageNumber }}: {{ .Title }}|{{ .IsHome }}|{{ i18n \"hello\" }}|{{ .Permalink }}|{{ .Site.Data.hugo.slogan }}"), + 0755); err != nil { + t.Fatalf("Failed to write layout file: %s", err) + } + + if err := afero.WriteFile(mf, + filepath.Join("layouts", "index.fr.html"), + []byte("{{ $p := .Paginator }}French Home Page {{ $p.PageNumber }}: {{ .Title }}|{{ .IsHome }}|{{ i18n \"hello\" }}|{{ .Permalink }}|{{ .Site.Data.hugo.slogan }}"), 0755); err != nil { t.Fatalf("Failed to write layout file: %s", err) } @@ -1055,6 +1062,21 @@ func createMultiTestSitesForConfig(t *testing.T, siteConfig testSiteConfig, conf t.Fatalf("Failed to write layout file: %s", err) } + // A shortcode in multiple languages + if err := afero.WriteFile(mf, + filepath.Join("layouts", "shortcodes", "lingo.html"), + []byte("LingoDefault"), + 0755); err != nil { + t.Fatalf("Failed to write layout file: %s", err) + } + + if err := afero.WriteFile(mf, + filepath.Join("layouts", "shortcodes", "lingo.fr.html"), + []byte("LingoFrench"), + 0755); err != nil { + t.Fatalf("Failed to write layout file: %s", err) + } + // Add some language files if err := afero.WriteFile(mf, filepath.Join("i18n", "en.yaml"), @@ -1098,6 +1120,8 @@ publishdate: "2000-01-01" {{< shortcode >}} +{{< lingo >}} + NOTE: slug should be used as URL `)}, {Name: filepath.FromSlash("sect/doc1.fr.md"), Content: []byte(`--- @@ -1113,6 +1137,8 @@ publishdate: "2000-01-04" {{< shortcode >}} +{{< lingo >}} + NOTE: should be in the 'en' Page's 'Translations' field. NOTE: date is after "doc3" `)}, |