shithub: hugo

Download patch

ref: ef78a0d18a13098bcea1ff2b2d45d7388b8d41a0
parent: 585958645372e6219239247dbac02e447d2b355b
author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
date: Fri Jan 31 03:02:53 EST 2020

transform/livereloadinject: Don't use document.write to inject livereload

I suspect the person who originally implemented it saw examples using location.host etc. to build the URL.

We have all that information ready at build (static) time.

Fixes #6507

--- a/transform/livereloadinject/livereloadinject.go
+++ b/transform/livereloadinject/livereloadinject.go
@@ -59,7 +59,7 @@
 			return err
 		}
 
-		script := []byte(fmt.Sprintf(`<script data-no-instant>document.write('<script src="/livereload.js?port=%d&mindelay=10&v=2"></' + 'script>')</script>`, port))
+		script := []byte(fmt.Sprintf(`<script src="/livereload.js?port=%d&mindelay=10&v=2" data-no-instant></script>`, port))
 
 		i := idx
 		if match.appendScript {
--- a/transform/livereloadinject/livereloadinject_test.go
+++ b/transform/livereloadinject/livereloadinject_test.go
@@ -25,7 +25,7 @@
 func TestLiveReloadInject(t *testing.T) {
 	c := qt.New(t)
 
-	expectBase := `<script data-no-instant>document.write('<script src="/livereload.js?port=1313&mindelay=10&v=2"></' + 'script>')</script>`
+	expectBase := `<script src="/livereload.js?port=1313&mindelay=10&v=2" data-no-instant></script>`
 	apply := func(s string) string {
 		out := new(bytes.Buffer)
 		in := strings.NewReader(s)