summaryrefslogtreecommitdiffhomepage
path: root/transform
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <[email protected]>2017-02-05 10:20:06 +0700
committerBjørn Erik Pedersen <[email protected]>2017-02-17 17:15:26 +0100
commit93ca7c9e958e34469a337e4efcc7c75774ec50fd (patch)
tree5dfa296cfe74fd5ef8f0d41ea4078704f453aa04 /transform
parente34af6ee30f70f5780a281e2fd8f4ed9b487ee61 (diff)
downloadhugo-93ca7c9e958e34469a337e4efcc7c75774ec50fd.tar.gz
hugo-93ca7c9e958e34469a337e4efcc7c75774ec50fd.zip
all: Refactor to nonglobal Viper, i18n etc.
This is a final rewrite that removes all the global state in Hugo, which also enables the use if `t.Parallel` in tests. Updates #2701 Fixes #3016
Diffstat (limited to 'transform')
-rw-r--r--transform/livereloadinject.go31
-rw-r--r--transform/livereloadinject_test.go5
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)