mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-07 20:30:36 -05:00
parent
8d040c966f
commit
f53145b274
2 changed files with 21 additions and 2 deletions
|
@ -169,8 +169,15 @@ func AbsURL(in string, addLanguage bool) string {
|
|||
|
||||
if addLanguage {
|
||||
prefix := getLanguagePrefix()
|
||||
hasPrefix := false
|
||||
// avoid adding language prefix if already present
|
||||
if strings.HasPrefix(in, "/") {
|
||||
hasPrefix = strings.HasPrefix(in[1:], prefix)
|
||||
} else {
|
||||
hasPrefix = strings.HasPrefix(in, prefix)
|
||||
}
|
||||
|
||||
if prefix != "" {
|
||||
if prefix != "" && !hasPrefix {
|
||||
addSlash := in == "" || strings.HasSuffix(in, "/")
|
||||
in = path.Join(prefix, in)
|
||||
|
||||
|
@ -224,7 +231,15 @@ func RelURL(in string, addLanguage bool) string {
|
|||
|
||||
if addLanguage {
|
||||
prefix := getLanguagePrefix()
|
||||
if prefix != "" {
|
||||
hasPrefix := false
|
||||
// avoid adding language prefix if already present
|
||||
if strings.HasPrefix(in, "/") {
|
||||
hasPrefix = strings.HasPrefix(in[1:], prefix)
|
||||
} else {
|
||||
hasPrefix = strings.HasPrefix(in, prefix)
|
||||
}
|
||||
|
||||
if prefix != "" && !hasPrefix {
|
||||
hadSlash := strings.HasSuffix(u, "/")
|
||||
|
||||
u = path.Join(prefix, u)
|
||||
|
|
|
@ -69,12 +69,14 @@ func doTestAbsURL(t *testing.T, defaultInSubDir, addLanguage, multilingual bool,
|
|||
expected string
|
||||
}{
|
||||
{"/test/foo", "http://base/", "http://base/MULTItest/foo"},
|
||||
{"/" + lang + "/test/foo", "http://base/", "http://base/" + lang + "/test/foo"},
|
||||
{"", "http://base/ace/", "http://base/ace/MULTI"},
|
||||
{"/test/2/foo/", "http://base", "http://base/MULTItest/2/foo/"},
|
||||
{"http://abs", "http://base/", "http://abs"},
|
||||
{"schema://abs", "http://base/", "schema://abs"},
|
||||
{"//schemaless", "http://base/", "//schemaless"},
|
||||
{"test/2/foo/", "http://base/path", "http://base/path/MULTItest/2/foo/"},
|
||||
{lang + "/test/2/foo/", "http://base/path", "http://base/path/" + lang + "/test/2/foo/"},
|
||||
{"/test/2/foo/", "http://base/path", "http://base/MULTItest/2/foo/"},
|
||||
{"http//foo", "http://base/path", "http://base/path/MULTIhttp/foo"},
|
||||
}
|
||||
|
@ -141,6 +143,8 @@ func doTestRelURL(t *testing.T, defaultInSubDir, addLanguage, multilingual bool,
|
|||
expected string
|
||||
}{
|
||||
{"/test/foo", "http://base/", false, "MULTI/test/foo"},
|
||||
{"/" + lang + "/test/foo", "http://base/", false, "/" + lang + "/test/foo"},
|
||||
{lang + "/test/foo", "http://base/", false, "/" + lang + "/test/foo"},
|
||||
{"test.css", "http://base/sub", false, "/subMULTI/test.css"},
|
||||
{"test.css", "http://base/sub", true, "MULTI/test.css"},
|
||||
{"/test/", "http://base/", false, "MULTI/test/"},
|
||||
|
|
Loading…
Reference in a new issue