mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-07 20:30:36 -05:00
helpers: Properly handle []interface{} as staticDir
And now with a proper integration test ...
This commit is contained in:
parent
adbd5bc47f
commit
118b83d74b
2 changed files with 12 additions and 3 deletions
|
@ -18,6 +18,7 @@ import (
|
||||||
|
|
||||||
"github.com/gohugoio/hugo/config"
|
"github.com/gohugoio/hugo/config"
|
||||||
"github.com/gohugoio/hugo/hugofs"
|
"github.com/gohugoio/hugo/hugofs"
|
||||||
|
"github.com/spf13/cast"
|
||||||
)
|
)
|
||||||
|
|
||||||
// PathSpec holds methods that decides how paths in URLs and files in Hugo should look like.
|
// PathSpec holds methods that decides how paths in URLs and files in Hugo should look like.
|
||||||
|
@ -106,7 +107,7 @@ func NewPathSpec(fs *hugofs.Fs, cfg config.Provider) (*PathSpec, error) {
|
||||||
|
|
||||||
func getStringOrStringSlice(cfg config.Provider, key string, id int) []string {
|
func getStringOrStringSlice(cfg config.Provider, key string, id int) []string {
|
||||||
|
|
||||||
if id > 0 {
|
if id >= 0 {
|
||||||
key = fmt.Sprintf("%s%d", key, id)
|
key = fmt.Sprintf("%s%d", key, id)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,8 +117,8 @@ func getStringOrStringSlice(cfg config.Provider, key string, id int) []string {
|
||||||
|
|
||||||
if sds, ok := sd.(string); ok {
|
if sds, ok := sd.(string); ok {
|
||||||
out = []string{sds}
|
out = []string{sds}
|
||||||
} else if sdsl, ok := sd.([]string); ok {
|
} else if sd != nil {
|
||||||
out = sdsl
|
out = cast.ToStringSlice(sd)
|
||||||
}
|
}
|
||||||
|
|
||||||
return out
|
return out
|
||||||
|
|
|
@ -15,6 +15,7 @@ paginate = 1
|
||||||
disablePathToLower = true
|
disablePathToLower = true
|
||||||
defaultContentLanguage = "{{ .DefaultContentLanguage }}"
|
defaultContentLanguage = "{{ .DefaultContentLanguage }}"
|
||||||
defaultContentLanguageInSubdir = {{ .DefaultContentLanguageInSubdir }}
|
defaultContentLanguageInSubdir = {{ .DefaultContentLanguageInSubdir }}
|
||||||
|
staticDir = ["s1", "s2"]
|
||||||
|
|
||||||
[permalinks]
|
[permalinks]
|
||||||
other = "/somewhere/else/:filename"
|
other = "/somewhere/else/:filename"
|
||||||
|
@ -24,18 +25,21 @@ tag = "tags"
|
||||||
|
|
||||||
[Languages]
|
[Languages]
|
||||||
[Languages.en]
|
[Languages.en]
|
||||||
|
staticDir2 = ["ens1", "ens2"]
|
||||||
baseURL = "https://example.com"
|
baseURL = "https://example.com"
|
||||||
weight = 10
|
weight = 10
|
||||||
title = "In English"
|
title = "In English"
|
||||||
languageName = "English"
|
languageName = "English"
|
||||||
|
|
||||||
[Languages.fr]
|
[Languages.fr]
|
||||||
|
staticDir2 = ["frs1", "frs2"]
|
||||||
baseURL = "https://example.fr"
|
baseURL = "https://example.fr"
|
||||||
weight = 20
|
weight = 20
|
||||||
title = "Le Français"
|
title = "Le Français"
|
||||||
languageName = "Français"
|
languageName = "Français"
|
||||||
|
|
||||||
[Languages.nn]
|
[Languages.nn]
|
||||||
|
staticDir2 = ["nns1", "nns2"]
|
||||||
baseURL = "https://example.no"
|
baseURL = "https://example.no"
|
||||||
weight = 30
|
weight = 30
|
||||||
title = "På nynorsk"
|
title = "På nynorsk"
|
||||||
|
@ -57,12 +61,16 @@ languageName = "Nynorsk"
|
||||||
|
|
||||||
s1 := sites.Sites[0]
|
s1 := sites.Sites[0]
|
||||||
|
|
||||||
|
assert.Equal([]string{"s1", "s2", "ens1", "ens2"}, s1.StaticDirs())
|
||||||
|
|
||||||
s1h := s1.getPage(KindHome)
|
s1h := s1.getPage(KindHome)
|
||||||
assert.True(s1h.IsTranslated())
|
assert.True(s1h.IsTranslated())
|
||||||
assert.Len(s1h.Translations(), 2)
|
assert.Len(s1h.Translations(), 2)
|
||||||
assert.Equal("https://example.com/", s1h.Permalink())
|
assert.Equal("https://example.com/", s1h.Permalink())
|
||||||
|
|
||||||
s2 := sites.Sites[1]
|
s2 := sites.Sites[1]
|
||||||
|
assert.Equal([]string{"s1", "s2", "frs1", "frs2"}, s2.StaticDirs())
|
||||||
|
|
||||||
s2h := s2.getPage(KindHome)
|
s2h := s2.getPage(KindHome)
|
||||||
assert.Equal("https://example.fr/", s2h.Permalink())
|
assert.Equal("https://example.fr/", s2h.Permalink())
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue