diff options
Diffstat (limited to 'transform')
-rw-r--r-- | transform/livereloadinject.go | 31 | ||||
-rw-r--r-- | transform/livereloadinject_test.go | 5 |
2 files changed, 16 insertions, 20 deletions
diff --git a/transform/livereloadinject.go b/transform/livereloadinject.go index 95608185d..83fe7c106 100644 --- a/transform/livereloadinject.go +++ b/transform/livereloadinject.go @@ -16,24 +16,23 @@ package transform import ( "bytes" "fmt" - - "github.com/spf13/viper" ) -func LiveReloadInject(ct contentTransformer) { - endBodyTag := "</body>" - match := []byte(endBodyTag) - port := viper.Get("port") - replaceTemplate := `<script data-no-instant>document.write('<script src="/livereload.js?port=%d&mindelay=10"></' + 'script>')</script>%s` - replace := []byte(fmt.Sprintf(replaceTemplate, port, endBodyTag)) - - newcontent := bytes.Replace(ct.Content(), match, replace, 1) - if len(newcontent) == len(ct.Content()) { - endBodyTag = "</BODY>" - replace := []byte(fmt.Sprintf(replaceTemplate, port, endBodyTag)) +func LiveReloadInject(port int) func(ct contentTransformer) { + return func(ct contentTransformer) { + endBodyTag := "</body>" match := []byte(endBodyTag) - newcontent = bytes.Replace(ct.Content(), match, replace, 1) - } + replaceTemplate := `<script data-no-instant>document.write('<script src="/livereload.js?port=%d&mindelay=10"></' + 'script>')</script>%s` + replace := []byte(fmt.Sprintf(replaceTemplate, port, endBodyTag)) + + newcontent := bytes.Replace(ct.Content(), match, replace, 1) + if len(newcontent) == len(ct.Content()) { + endBodyTag = "</BODY>" + replace := []byte(fmt.Sprintf(replaceTemplate, port, endBodyTag)) + match := []byte(endBodyTag) + newcontent = bytes.Replace(ct.Content(), match, replace, 1) + } - ct.Write(newcontent) + ct.Write(newcontent) + } } diff --git a/transform/livereloadinject_test.go b/transform/livereloadinject_test.go index 9f28e05e2..3337243bd 100644 --- a/transform/livereloadinject_test.go +++ b/transform/livereloadinject_test.go @@ -18,8 +18,6 @@ import ( "fmt" "strings" "testing" - - "github.com/spf13/viper" ) func TestLiveReloadInject(t *testing.T) { @@ -28,11 +26,10 @@ func TestLiveReloadInject(t *testing.T) { } func doTestLiveReloadInject(t *testing.T, bodyEndTag string) { - viper.Set("port", 1313) out := new(bytes.Buffer) in := strings.NewReader(bodyEndTag) - tr := NewChain(LiveReloadInject) + tr := NewChain(LiveReloadInject(1313)) tr.Apply(out, in, []byte("path")) expected := fmt.Sprintf(`<script data-no-instant>document.write('<script src="/livereload.js?port=1313&mindelay=10"></' + 'script>')</script>%s`, bodyEndTag) |