shithub: hugo

Download patch

ref: b180477631555824a06293053e2b6e63c5f07361
parent: c31e083ead1d494d7ebaa3947028ea6cee302f32
author: Bjørn Erik Pedersen <[email protected]>
date: Sat Sep 23 13:08:48 EDT 2017

Add liveReloadPort flag to server

This makes live reloading behind a HTTPS proxy working, as in the example below using the service from https://ngrok.com:

```
hugo server -b https://ba6sdfe72.ngrok.io --appendPort=false --liveReloadPort=443 --navigateToChanged
```

Fixes #3882

--- a/commands/server.go
+++ b/commands/server.go
@@ -38,6 +38,7 @@
 	serverAppend      bool
 	serverInterface   string
 	serverPort        int
+	liveReloadPort    int
 	serverWatch       bool
 	noHTTPCache       bool
 )
@@ -85,6 +86,7 @@
 	initHugoBuilderFlags(serverCmd)
 
 	serverCmd.Flags().IntVarP(&serverPort, "port", "p", 1313, "port on which the server will listen")
+	serverCmd.Flags().IntVar(&liveReloadPort, "liveReloadPort", -1, "port for live reloading (i.e. 443 in HTTPS proxy situations)")
 	serverCmd.Flags().StringVarP(&serverInterface, "bind", "", "127.0.0.1", "interface to which the server will bind")
 	serverCmd.Flags().BoolVarP(&serverWatch, "watch", "w", true, "watch filesystem for changes and recreate as needed")
 	serverCmd.Flags().BoolVar(&noHTTPCache, "noHTTPCache", false, "prevent HTTP caching")
@@ -144,6 +146,11 @@
 	}
 
 	c.Set("port", serverPort)
+	if liveReloadPort != -1 {
+		c.Set("liveReloadPort", liveReloadPort)
+	} else {
+		c.Set("liveReloadPort", serverPort)
+	}
 
 	baseURL, err = fixURL(c.Cfg, baseURL)
 	if err != nil {
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -1845,7 +1845,7 @@
 		}
 
 		if s.running() && s.Cfg.GetBool("watch") && !s.Cfg.GetBool("disableLiveReload") {
-			transformLinks = append(transformLinks, transform.LiveReloadInject(s.Cfg.GetInt("port")))
+			transformLinks = append(transformLinks, transform.LiveReloadInject(s.Cfg.GetInt("liveReloadPort")))
 		}
 
 		// For performance reasons we only inject the Hugo generator tag on the home page.