diff options
-rw-r--r-- | transform/livereloadinject.go | 11 | ||||
-rw-r--r-- | transform/livereloadinject_test.go | 10 |
2 files changed, 16 insertions, 5 deletions
diff --git a/transform/livereloadinject.go b/transform/livereloadinject.go index 789ff9d22..9eab45f78 100644 --- a/transform/livereloadinject.go +++ b/transform/livereloadinject.go @@ -15,15 +15,20 @@ package transform import ( "bytes" + "fmt" ) func LiveReloadInject(ct contentTransformer) { - match := []byte("</body>") - replace := []byte(`<script data-no-instant>document.write('<script src="/livereload.js?mindelay=10"></' + 'script>')</script></body>`) + endBodyTag := "</body>" + match := []byte(endBodyTag) + replaceTemplate := `<script data-no-instant>document.write('<script src="/livereload.js?mindelay=10"></' + 'script>')</script>%s` + replace := []byte(fmt.Sprintf(replaceTemplate, endBodyTag)) newcontent := bytes.Replace(ct.Content(), match, replace, -1) if len(newcontent) == len(ct.Content()) { - match := []byte("</BODY>") + endBodyTag = "</BODY>" + replace := []byte(fmt.Sprintf(replaceTemplate, endBodyTag)) + match := []byte(endBodyTag) newcontent = bytes.Replace(ct.Content(), match, replace, -1) } diff --git a/transform/livereloadinject_test.go b/transform/livereloadinject_test.go index 0c47cb109..5aea8689c 100644 --- a/transform/livereloadinject_test.go +++ b/transform/livereloadinject_test.go @@ -15,18 +15,24 @@ package transform import ( "bytes" + "fmt" "github.com/spf13/hugo/helpers" "testing" ) func TestLiveReloadInject(t *testing.T) { + doTestLiveReloadInject(t, "</body>") + doTestLiveReloadInject(t, "</BODY>") +} + +func doTestLiveReloadInject(t *testing.T, bodyEndTag string) { out := new(bytes.Buffer) - in := helpers.StringToReader("</body>") + in := helpers.StringToReader(bodyEndTag) tr := NewChain(LiveReloadInject) tr.Apply(out, in, []byte("path")) - expected := `<script data-no-instant>document.write('<script src="/livereload.js?mindelay=10"></' + 'script>')</script></body>` + expected := fmt.Sprintf(`<script data-no-instant>document.write('<script src="/livereload.js?mindelay=10"></' + 'script>')</script>%s`, bodyEndTag) if string(out.Bytes()) != expected { t.Errorf("Expected %s got %s", expected, string(out.Bytes())) } |