shithub: hugo

Download patch

ref: 22683a3b669c06c49457c816475213fcef3e789c
parent: 76738347d39d8acb8a590e94e71985001afb7ad4
author: Sven Dowideit <[email protected]>
date: Tue Apr 19 07:40:15 EDT 2016

Make alias redirect output URL's relative

Closes #2093

--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -2095,7 +2095,19 @@
 }
 
 func (s *Site) writeDestAlias(path string, permalink string) (err error) {
-	jww.DEBUG.Println("creating alias:", path)
+	if viper.GetBool("RelativeURLs") {
+		// convert `permalink` into URI relative to location of `path`
+		baseURL := helpers.SanitizeURLKeepTrailingSlash(viper.GetString("BaseURL"))
+		if strings.HasPrefix(permalink, baseURL) {
+			permalink = "/" + strings.TrimPrefix(permalink, baseURL)
+		}
+		permalink, err = helpers.GetRelativePath(permalink, path)
+		if err != nil {
+			jww.ERROR.Println("Failed to make a RelativeURL alias:", path, "redirecting to", permalink)
+		}
+		permalink = filepath.ToSlash(permalink)
+	}
+	jww.DEBUG.Println("creating alias:", path, "redirecting to", permalink)
 	return s.aliasTarget().Publish(path, permalink)
 }