shithub: hugo

Download patch

ref: 74ffb45fbe2c121881b2386fc3210f8b1c6bd952
parent: f53145b2748067a9d50ab57efc6423d7568c237c
author: Bjørn Erik Pedersen <[email protected]>
date: Tue Sep 13 19:44:16 EDT 2016

helpers: Improve the language prefix logic

See #2444

--- a/helpers/url.go
+++ b/helpers/url.go
@@ -169,20 +169,22 @@
 
 	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 != "" {
+			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 {
-			addSlash := in == "" || strings.HasSuffix(in, "/")
-			in = path.Join(prefix, in)
+			if !hasPrefix {
+				addSlash := in == "" || strings.HasSuffix(in, "/")
+				in = path.Join(prefix, in)
 
-			if addSlash {
-				in += "/"
+				if addSlash {
+					in += "/"
+				}
 			}
 		}
 	}
@@ -231,21 +233,23 @@
 
 	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 != "" {
+			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, "/")
+			if !hasPrefix {
+				hadSlash := strings.HasSuffix(u, "/")
 
-			u = path.Join(prefix, u)
+				u = path.Join(prefix, u)
 
-			if hadSlash {
-				u += "/"
+				if hadSlash {
+					u += "/"
+				}
 			}
 		}
 	}